2012-03-30 23 views
3

試圖調用SQL過程:調用SQL過程:SQL異常 - 代碼:6550 ORA-06550

PROCEDURE Incident_inqr 
(MSISDN IN VARCHAR2 
, Topic IN varchar2 
,Incident_id IN varchar2 default '20120401' 
, RESULT OUT number 
); 

的Java JDBC字符串:

SQL command: begin ? := SMASTER.SERVICE.Incident_inqr ('9308000050','6345_NN','20120401', ?); end; 

錯誤(我得到它在俄羅斯):

SQL異常 - 代碼:6550 ORA-06550:Строка1,столбец13:PLS-00222: функциясименем 'INCIDENT_INQR' несуществуетвэтойобластидействия ORA-06550:Строка1,столбец7:PL/SQL:語句忽略

翻譯:

SQL異常 - 代碼:6550 ORA-06550:線1,列13:PLS-00222: 'INCIDENT_INQR' 函數調用中不此動作區域中存在 ORA-06550:第1行,第7列:PL/SQL:語句忽略

輸出?登記:

cs.registerOutParameter(1, oracle.jdbc.driver.OracleTypes.VARCHAR); 
cs.registerOutParameter(2, oracle.jdbc.driver.OracleTypes.NUMBER); 

回答

2

Incident_inqr是一個過程。所以它沒有返回值,只是out參數。

的正確方法從而叫它是:

begin SMASTER.SERVICE.Incident_inqr ('9308000050','6345_NN','20120401', ?); end; 

...

cs.registerOutParameter(1, oracle.jdbc.driver.OracleTypes.NUMBER); 

此外,該過程需要一個屬於模式/稱爲「服務」計劃的一部分給用戶SMASTER

+0

_Incident_inqr是一個過程。所以它沒有返回值,只是輸出參數._ < - 這是問題所在 – VextoR 2012-03-30 11:18:44