into子句

h22fl7wq  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(449)

我为select创建了动态db2存储过程。我将使用这个通用查询通过传递参数来执行多个select语句。

  1. SET V_SELECT =
  2. 'SELECT ' || SELECT_FIELDS ||
  3. ' INTO ' || INTO_FIELDS ||
  4. ' FROM ' || TABLE_NAME ||
  5. ' WHERE ' || WHERE_CLAUSE ||
  6. ' WITH UR';
  7. EXECUTE IMMEDIATE V_SELECT;

下面是我的查询结果。

  1. SELECT B.PROD_TYP
  2. INTO HOST_VAR_PROD_TYP
  3. FROM TABLE_A A
  4. INNER JOIN TABLE_B B
  5. ON A.ROW_ID = B.ROW_ID
  6. WHERE A.PROD_CD = HOST_VAR_PROD_CD;

当我运行这个时
“不允许加入条款”。
提前谢谢。

kxeu7u2r

kxeu7u2r1#

我手头没有db2 for z/os,但您应该这样做:

  1. DECLARE V_STMT VARCHAR(200);
  2. DECLARE V_NAME VARCHAR(128);
  3. DECLARE V_COLCOUNT INT;
  4. SET V_NAME = 'SYSTABLES';
  5. SET V_STMT = 'SET ? = (SELECT COLCOUNT FROM SYSIBM.SYSTABLES WHERE CREATOR = ''SYSIBM'' AND NAME = ?)';
  6. PREPARE S1 FROM V_STMT;
  7. EXECUTE S1 INTO V_COLCOUNT USING V_NAME;

你需要 SET 声明。构造 V_STMT 根据您的需要进行估价。第一名 ? 表示您进入的结果 V_COLCOUNT 从你这里 select . 第二个 ? 表示用 V_NAME 变量。

相关问题