2017-03-22 12 views
0

JavaからPL/SQLでプロシージャをコールする必要があります。Java + PL/SQL呼び出しプロシージャ

String query = "{CALL zapisz_button(?,?,?)}" ; 
     CallableStatement cst = con.prepareCall(query); 
     cst.setString(1,txtNazwa.getText()); 
     cst.setString(2, "test"); 
     cst.setString(3,txtLiczba.getText()); 
     cst.execute(); 
     cst.close(); 

そのを呼び出すためにJAVAでの私のコードで私は間違いですanswearを探しています私のOracleのPL/SQLプロシージャ

create or replace procedure zapisz_button 
    (
    nazwaoddzialu IN ODDZIAL.NAZWAODDZIALU%TYPE, 
    rodzajoddzialu IN ODDZIAL.RODZAJODDZIALU%TYPE, 
    liczbalozek IN ODDZIAL.LICZBALOZEK%TYPE 
    ) 
as 
begin 
    insert into ODDZIAL("NAZWAODDZIALU","RODZAJODDZIALU","LICZBALOZEK") 
    values (nazwaoddzialu,rodzajoddzialu,liczbalozek); 

    commit; 
end zapisz_button; 

です。 私は、データベースにデータを追加しようとしていたとき、私はエラーを取得:

java.sql:SQLException: ORA-06550: line1,column7: 
PLS-00201:identifier'ZAPISZ_BUTTON' must be declared 
ORA-06550: line 1,column7: 
PL/SQL: Statement ignored 

は、私はPL/SQLを使用してデータベースのボタンに「保存」したいです。 私はちょうど "Insert Into ..."を使うことができますが、PL/SQLでそれをやりたいのです。

+0

SQL ServerまたはOracle SQL? – Jens

+0

Oracle SQLサーバー – aaaa

+0

SQL Server == MSSQL!= Oracle SQL – Jens

答えて

0

私はスキーマ名に問題があると思います。その中にスキーマ名を追加して実行してください。 任意のパッケージ(e.i。package_name)の下でプロシージャを定義し、 'aaa'がそのパッケージの所有者であるとしましょう。 プロシージャコールは次のようになります。

String query = "{CALL aaa.package_name.zapisz_button(?,?,?)}" ; 
     CallableStatement cst = con.prepareCall(query); 
     cst.setString(1,txtNazwa.getText()); 
     cst.setString(2, "test"); 
     cst.setString(3,txtLiczba.getText()); 
     cst.execute(); 
     cst.close(); 
関連する問題