我在.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
/
答案 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();
}
}