sql-pl

    1热度

    1回答

    我正在将存储过程代码从Oracle迁移到DB2,我需要找到一种测试数组成员资格的方法(Oracle有MEMBER OF运算符)。 存储过程除其他外还使用了一个用户数组(通过JDBC从Java代码接收的参数)。我想找到在数组中进行成员资格测试的最有效方法。使用Oracle,我会做: FOR r IN (SELECT * FROM acls WHERE acls.id = curid) LOOP

    0热度

    1回答

    我试图确保当我运行一个存储过程时,它检查一个表是否存在,如果它存在,则删除它然后重新创建表。使用以下存储的proc CREATE PROCEDURE PROCEDURE1() DYNAMIC RESULT SETS 1 P1: BEGIN if(exists( select 1 from syscat.tables where tabschema = 'AELUM' and tabname

    1热度

    2回答

    是否可以在FOR语句中使用动态SQL? 我正在使用FOR循环来处理来自SELECT语句的一批记录。 但是,如果我希望SELECT语句在运行时被绑定,例如表名可能存储在一个变量中,该怎么办? for thisRecord as select myColumn from MyTable --can this be dynamic? do ....... end for; 我

    0热度

    1回答

    我试图创建在一个表上栏的更新运行,然后在一定的价值观另一台填补了DB2数据库的触发器。 例如,存在与FLEET_ID柱的动力单元表。每当FLEET_ID已更改,我需要在TRANS_AUDIT表中创建一个新行。 的TRANS_AUDIT架构如下: CREATE TABLE LYNX.TRANS_AUDIT ( TA_ID INTEGER NOT NULL, TA_KEY_VALUE

    0热度

    1回答

    我试图在SQL PL中为db2创建存储过程。需要添加新字段作为唯一密钥的一部分,因此我需要先删除先前的uk,然后添加新的唯一密钥。这对MS SQLServer和Oracle来说工作得很好,但我无法为db2做好准备。 CREATE PROCEDURE update_unique_key() LANGUAGE SQL BEGIN DECLARE uk_constraint_name VA

    0热度

    1回答

    的过程我必须创建一个过程来删除供应商x提供的所有产品以及另一个名为tab_line的表中的所有参考。不知道我是否正确,但它表明我运行此代码时缺少表达式。任何帮助或更好的方式来做到这一点,将不胜感激! CREATE OR REPLACE PROCEDURE deleteproducts_test (x in number) AS BEGIN UPDATE tab_line SET p_c

    0热度

    2回答

    我在db2上创建一个过程,只有当表为空时才会将值插入到表中。我创建了下面的语句,但什么是错的,因为我得到的错误: [42601][-104] An unexpected token "END-OF-STATEMENT" was found following "END FOR". Expected tokens may include: " END IF".. SQLCODE=-104, SQ

    0热度

    2回答

    我有一个非常复杂的查询,其中包含“With”子句。这个查询在DB2客户端上执行时工作正常。但是,如果在PL SQL存储过程的For循环游标中使用相同的查询,则它不起作用。试图将存储过程应用于数据库时,它会给出语法错误,如下所示。 SQL0104N An unexpected token "AS" was found following "col5) for循环如下所示。 FOR records

    0热度

    1回答

    我想在我的代码中处理所有类型的生成信号。我知道如何用Declare Handler来捕捉特定的一个,但是我想要所有这些。 例如,在这里我看到了72822信号。 DECLARE EXIT HANDLER FOR SQLSTATE '72822' BEGIN IF (var = 'OK') RESIGNAL SQLSTATE '72623' SET MESSAGE_TE