0
  Connection connection = DriverManager.getConnection(DB_URL,userName,passWord); 
     ArrayDescriptor des = ArrayDescriptor.createDescriptor("ARRAY_TABLE", connection); 
     ARRAY array_to_pass = new ARRAY(des,connection,ssoIDs); 
     CallableStatement cs = connection.prepareCall("{ call TEST1 (?,?,?,?,?) }"); 
     cs.setArray(1, array_to_pass); 
     // cs.registerOutParameter(2,sdate); 
     cs.setString(2, sdate); 
     cs.setString(3, edate); 
     //st.registerOutParameter(3,OracleTypes.ARRAY,"SchemaName.ARRAY_INT"); 
     cs.registerOutParameter(4, OracleTypes.ARRAY, "ARRAY_TABLE"); 
     cs.registerOutParameter(5, OracleTypes.ARRAY, "ARRAY_TABLE"); 
     cs.execute(); // works fine . 

凡爲在調用secont一個不是兩個不同的模式存儲過程的存儲過程獲取執行

​​3210

的Test1屬於一個架構和Test2的屬於另一個模式。

錯誤消息是

州:65000 消息:ORA-06550:第1行,第7列: PLS-00201:識別符 'TEST2' 必須被聲明 ORA-06550:第1行,第7列: PL/SQL:被忽略的語句

我正在使用SQL開發人員,其中模式連接到數據庫,因爲我可以看到類似連接的架構上的插入符號。但我不知道爲什麼它不工作的任何一個任何想法,請幫助?

回答

0

終於找到了爲什麼我收到這樣的錯誤。什麼,我試圖與連接的用戶名和密碼沒有privilige訪問第二架構。

因爲我只是通過他們的名字叫「{call a(?,?)}」來調用不同模式的過程。它指的是單獨使用第一個的模式,並因此引發錯誤,其他PROC不存在。

在作出以調用第二個架構使用用戶名和密碼,一個新的連接。它工作正常。

相關問題