游标游标名称未处于准备状态
THE CURSOR CURSOR NAME IS NOT IN A PREPARED STATE
我为 select 创建了动态存储过程。我将通过传递参数使用此通用查询来执行多个 select 语句。
DECLARE DESC_CSR CURSOR WITH HOLD FOR V_SQL;
SET V_SELECT =
'SELECT ' || SELECT_FIELDS ||
' FROM ' || TABLE_NAME ||
' WHERE ' || WHERE_CLAUSE ||
' WITH UR';
PREPARE V_SQL FROM V_SELECT;
OPEN DESC_CSR;
我将传递以下值。
SELECT_FIELDS = B.COLUMN_A INTO HOST_VAR_A
TABLE_NAME = TABLE_A A INNER JOIN TABLE_B B
ON A.ROW_ID = B.ROW_ID
WHERE_CLAUSE = A.COLUMN_B = HOST_VAR_B
当我这样做时,我得到了 "THE CURSOR DESC_CSR IS NOT IN A PREPARED STATE"。
任何人都可以帮助我如何准备或纠正我,如果我做错了。
我使用了下面的代码并且工作正常。我能够使用 Dynamic 运行 多个 select。
DECLARE DESC_CSR CURSOR WITH HOLD FOR V_SQL;
SET V_SELECT =
'SELECT ' || SELECT_FIELDS ||
' FROM ' || TABLE_NAME ||
' WHERE ' || WHERE_CLAUSE ||
' WITH UR';
PREPARE V_SQL FROM V_SELECT;
OPEN DESC_CSR USING HOST_VAR_B;
FETCH DESC_CSR INTO HOST_VAR_A;
我按如下方式传递参数。使用 where 子句 HOST_VAR_B 作为参数标记“?”并在 OPEN 分配字段。
SELECT_FIELDS = B.COLUMN_A INTO HOST_VAR_A
TABLE_NAME = TABLE_A A INNER JOIN TABLE_B B
ON A.ROW_ID = B.ROW_ID
WHERE_CLAUSE = A.COLUMN_B = ?
我为 select 创建了动态存储过程。我将通过传递参数使用此通用查询来执行多个 select 语句。
DECLARE DESC_CSR CURSOR WITH HOLD FOR V_SQL;
SET V_SELECT =
'SELECT ' || SELECT_FIELDS ||
' FROM ' || TABLE_NAME ||
' WHERE ' || WHERE_CLAUSE ||
' WITH UR';
PREPARE V_SQL FROM V_SELECT;
OPEN DESC_CSR;
我将传递以下值。
SELECT_FIELDS = B.COLUMN_A INTO HOST_VAR_A
TABLE_NAME = TABLE_A A INNER JOIN TABLE_B B
ON A.ROW_ID = B.ROW_ID
WHERE_CLAUSE = A.COLUMN_B = HOST_VAR_B
当我这样做时,我得到了 "THE CURSOR DESC_CSR IS NOT IN A PREPARED STATE"。
任何人都可以帮助我如何准备或纠正我,如果我做错了。
我使用了下面的代码并且工作正常。我能够使用 Dynamic 运行 多个 select。
DECLARE DESC_CSR CURSOR WITH HOLD FOR V_SQL;
SET V_SELECT =
'SELECT ' || SELECT_FIELDS ||
' FROM ' || TABLE_NAME ||
' WHERE ' || WHERE_CLAUSE ||
' WITH UR';
PREPARE V_SQL FROM V_SELECT;
OPEN DESC_CSR USING HOST_VAR_B;
FETCH DESC_CSR INTO HOST_VAR_A;
我按如下方式传递参数。使用 where 子句 HOST_VAR_B 作为参数标记“?”并在 OPEN 分配字段。
SELECT_FIELDS = B.COLUMN_A INTO HOST_VAR_A
TABLE_NAME = TABLE_A A INNER JOIN TABLE_B B
ON A.ROW_ID = B.ROW_ID
WHERE_CLAUSE = A.COLUMN_B = ?