Java + PL / SQL调用过程

时间:2017-03-22 15:58:02

标签: java oracle stored-procedures plsql

我想从Java调用PL / SQL中的过程。

这是我在JAVA中调用的代码

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();

这是我的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中这样做。

2 个答案:

答案 0 :(得分:0)

我认为架构名称的问题,请尝试在其中添加架构名称并执行。 在任何包(e.i.package_name)下定义你的程序,让我们说'aaa'是该包的所有者。 程序调用将是。

if (location.hash == "#_=_") location.hash = "";

答案 1 :(得分:0)

架构存在问题。它可以用不同的方式处理。

1)在您的程序之前添加模式名称,然后按'。'。 2)在与您的Java应用程序连接的其他模式中创建过程的同义词。