在DB2中创建过程

时间:2015-09-15 13:57:55

标签: shell db2 procedure

我在.sql文件中使用DB2创建了一个简单的过程,并使用Shell(Unix)执行脚本。我收到一个错误:SQLSTATE 42601。

DB20000I  The SQL command completed successfully.
CREATE OR REPLACE PROCEDURE PROC_SAMPLE1()
BEGIN
update EMP set ENAME='ALLAIN' where EMPNO=7789
DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL0104N  An unexpected token "END-OF-STATEMENT" was found following "IN'
where EMPNO=7789".  Expected tokens may include:  "<psm_semicolon>".  LINE
NUMBER=3.  SQLSTATE=42601

有程序:

CREATE OR REPLACE PROCEDURE PROC_SAMPLE1()
BEGIN
update EMP set ENAME='ALLAIN' where EMPNO=7789;
END
/

2 个答案:

答案 0 :(得分:2)

如果这包含在文件中,则需要更改批处理终止符。由于SP行以;结尾,批处理以/结尾,因此您需要在命令行中指定它。

例如

db2 -td/ -f <your file>.sql
  

我喜欢使用#,因为它不会像/这样的unix shell混乱。在此处,将最后一个字符替换为文件中的#,然后使用-td#

答案 1 :(得分:0)

我添加了&#39; - #SET TERMINATOR /&#39;在创建过程之前,问题就解决了。

private void MainTabbedPaneStateChanged(javax.swing.event.ChangeEvent evt) {

        if(CashierPanel.isShowing()){
            Barcode_txt.requestFocus();
        }       
    }