From 9309c76f1a03cd9355d695a89ddd0a8dfec1169e Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Tue, 27 Dec 2016 17:56:59 +0800 Subject: [PATCH 1/3] =?UTF-8?q?oracle=20=E5=AD=98=E5=82=A8=E8=BF=87?= =?UTF-8?q?=E7=A8=8B=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/env/RemoteEnv.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/designer_base/src/com/fr/env/RemoteEnv.java b/designer_base/src/com/fr/env/RemoteEnv.java index a0bdc0e132..e3fefd04e8 100644 --- a/designer_base/src/com/fr/env/RemoteEnv.java +++ b/designer_base/src/com/fr/env/RemoteEnv.java @@ -1656,12 +1656,12 @@ public class RemoteEnv implements Env { } @Override - public StoreProcedureParameter[] getStoreProcedureDeclarationParameters(String connectionName, String databaseName, String parameterDefaultValue) throws Exception { + public StoreProcedureParameter[] getStoreProcedureDeclarationParameters(String connectionName, String[] databaseName, String parameterDefaultValue) throws Exception { ByteArrayOutputStream out = new ByteArrayOutputStream(); HashMap para = new HashMap(); para.put("op", "fr_remote_design"); para.put("cmd", "design_get_sp_parameters"); - para.put("__name__", databaseName); + para.put("__name__", StringUtils.join(".", databaseName)); para.put("__default_value__", parameterDefaultValue); para.put("connectionName", connectionName); From 57ebd42fcbfa769c2aa328552b2dab1e5d0fd8e9 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Tue, 27 Dec 2016 17:58:14 +0800 Subject: [PATCH 2/3] rt --- .../design/data/tabledata/tabledatapane/ProcedureDataPane.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java b/designer_base/src/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java index 600481428e..f3e8dcd5ae 100644 --- a/designer_base/src/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java +++ b/designer_base/src/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java @@ -316,7 +316,7 @@ public class ProcedureDataPane extends AbstractTableDataPane imp } StoreProcedureParameter[] newparameters; - newparameters = FRContext.getCurrentEnv().getStoreProcedureDeclarationParameters(connectionname, tableName[tableName.length - 1], parameterDefaultValue); + newparameters = FRContext.getCurrentEnv().getStoreProcedureDeclarationParameters(connectionname, tableName, parameterDefaultValue); editorPane.populate(newparameters); From efda5a486ffdca44437e9c84bbd830784823e7d1 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Wed, 28 Dec 2016 14:26:18 +0800 Subject: [PATCH 3/3] rt --- .../tabledata/tabledatapane/ProcedureDataPane.java | 13 ++++++------- designer_base/src/com/fr/env/RemoteEnv.java | 4 ++-- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/designer_base/src/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java b/designer_base/src/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java index f3e8dcd5ae..6f2ee4da33 100644 --- a/designer_base/src/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java +++ b/designer_base/src/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java @@ -299,7 +299,6 @@ public class ProcedureDataPane extends AbstractTableDataPane imp text = StringUtils.EMPTY; } text = text.trim(); - String[] tableName = text.split("\\."); String connectionname = this.connectionTableProcedurePane.getSelectedDatabaseConnnectonName(); try { String procedureText = FRContext.getCurrentEnv().getProcedureText(this.connectionTableProcedurePane.getSelectedDatabaseConnnectonName(), text); @@ -307,16 +306,16 @@ public class ProcedureDataPane extends AbstractTableDataPane imp // 获取参数默认值,例如:NAME in varchar2 default 'SCOTT',默认值为SCOTT String parameterDefaultValue = ""; if (StringUtils.isNotEmpty(procedureText)) { - int index_begin = procedureText.indexOf("BEGIN"); - - //from sam: 默认值只会在begin之前声明, 不然会把所有的存储过程里带'xx'的都作为默认值 - String defaulValueStr = index_begin == -1 ? procedureText : procedureText.substring(0, index_begin); - String[] strs = defaulValueStr.split("\'"); + int index_begin = procedureText.indexOf("BEGIN"); + + //from sam: 默认值只会在begin之前声明, 不然会把所有的存储过程里带'xx'的都作为默认值 + String defaulValueStr = index_begin == -1 ? procedureText : procedureText.substring(0, index_begin); + String[] strs = defaulValueStr.split("\'"); parameterDefaultValue = strs.length > 1 ? strs[1] : parameterDefaultValue; } StoreProcedureParameter[] newparameters; - newparameters = FRContext.getCurrentEnv().getStoreProcedureDeclarationParameters(connectionname, tableName, parameterDefaultValue); + newparameters = FRContext.getCurrentEnv().getStoreProcedureDeclarationParameters(connectionname, text, parameterDefaultValue); editorPane.populate(newparameters); diff --git a/designer_base/src/com/fr/env/RemoteEnv.java b/designer_base/src/com/fr/env/RemoteEnv.java index e3fefd04e8..a0bdc0e132 100644 --- a/designer_base/src/com/fr/env/RemoteEnv.java +++ b/designer_base/src/com/fr/env/RemoteEnv.java @@ -1656,12 +1656,12 @@ public class RemoteEnv implements Env { } @Override - public StoreProcedureParameter[] getStoreProcedureDeclarationParameters(String connectionName, String[] databaseName, String parameterDefaultValue) throws Exception { + public StoreProcedureParameter[] getStoreProcedureDeclarationParameters(String connectionName, String databaseName, String parameterDefaultValue) throws Exception { ByteArrayOutputStream out = new ByteArrayOutputStream(); HashMap para = new HashMap(); para.put("op", "fr_remote_design"); para.put("cmd", "design_get_sp_parameters"); - para.put("__name__", StringUtils.join(".", databaseName)); + para.put("__name__", databaseName); para.put("__default_value__", parameterDefaultValue); para.put("connectionName", connectionName);