为 IBM DB2 数据库声明继续处理程序时出现 SQLCODE 42601
SQLCODE 42601 when declaring a continue handler for an IBM DB2 database
我试图在这里找到解决方案,但没有找到。这是我正在尝试的一些脚本 运行 :
BEGIN
DECLARE CONTINUE HANDLER FOR SQLSTATE '42710' BEGIN END;
EXECUTE IMMEDIATE 'CREATE TABLE BATCH_JOB_INSTANCE (JOB_INSTANCE_ID BIGINT NOT NULL PRIMARY KEY ,'
|| 'VERSION BIGINT ,'
|| 'JOB_NAME VARCHAR(100) NOT NULL,'
|| 'JOB_KEY VARCHAR(32) NOT NULL,'
|| 'constraint JOB_INST_UN unique (JOB_NAME, JOB_KEY));';
END
它创建一个 table,如果 table 已经存在,抛出的异常将被忽略。这是我尝试 运行 脚本时遇到的错误:
DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=END;LSTATE '42710' BEGIN;<psm_semicolon>
我试图修复该代码中的很多问题,试图在 BEGIN
和 END
语句之间添加一些无意义的代码(否则它只是一个空过程)。什么都不管用。有什么想法吗?
去掉空的BEGIN END
BEGIN
DECLARE CONTINUE HANDLER FOR SQLSTATE '42710'
EXECUTE IMMEDIATE 'CREATE TABLE BATCH_JOB_INSTANCE (JOB_INSTANCE_ID BIGINT NOT NULL PRIMARY KEY ,'
|| 'VERSION BIGINT ,'
|| 'JOB_NAME VARCHAR(100) NOT NULL,'
|| 'JOB_KEY VARCHAR(32) NOT NULL,'
|| 'constraint JOB_INST_UN unique (JOB_NAME, JOB_KEY));';
END
我试图在这里找到解决方案,但没有找到。这是我正在尝试的一些脚本 运行 :
BEGIN
DECLARE CONTINUE HANDLER FOR SQLSTATE '42710' BEGIN END;
EXECUTE IMMEDIATE 'CREATE TABLE BATCH_JOB_INSTANCE (JOB_INSTANCE_ID BIGINT NOT NULL PRIMARY KEY ,'
|| 'VERSION BIGINT ,'
|| 'JOB_NAME VARCHAR(100) NOT NULL,'
|| 'JOB_KEY VARCHAR(32) NOT NULL,'
|| 'constraint JOB_INST_UN unique (JOB_NAME, JOB_KEY));';
END
它创建一个 table,如果 table 已经存在,抛出的异常将被忽略。这是我尝试 运行 脚本时遇到的错误:
DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=END;LSTATE '42710' BEGIN;<psm_semicolon>
我试图修复该代码中的很多问题,试图在 BEGIN
和 END
语句之间添加一些无意义的代码(否则它只是一个空过程)。什么都不管用。有什么想法吗?
去掉空的BEGIN END
BEGIN
DECLARE CONTINUE HANDLER FOR SQLSTATE '42710'
EXECUTE IMMEDIATE 'CREATE TABLE BATCH_JOB_INSTANCE (JOB_INSTANCE_ID BIGINT NOT NULL PRIMARY KEY ,'
|| 'VERSION BIGINT ,'
|| 'JOB_NAME VARCHAR(100) NOT NULL,'
|| 'JOB_KEY VARCHAR(32) NOT NULL,'
|| 'constraint JOB_INST_UN unique (JOB_NAME, JOB_KEY));';
END