変数にselect文があります。このselect文のすべての行出力を別の表に挿入する必要があります。私はこれを手順で達成しようとしています。 私を助けてください。 のように私のコードに見える:私はテーブルERR_DUP_CHK .Iにこの選択クエリの出力を挿入する必要がexecuteプロシージャの変数に問合せを挿入します。
CREATE OR REPLACE
PROCEDURE PRC_DUP_CHK(
V_IN_TABLE_NAME IN VARCHAR2,
V_SOURCE_FILE IN VARCHAR2,
v_col IN VARCHAR2,
)
AS
SQL_STMT VARCHAR2(20000);
SQL_STMT3 VARCHAR2(20000);
V_KEY_COL_LIST VARCHAR2(500);
V_KEY_COL_LIST1 VARCHAR2(500);
BEGIN
SELECT UDC_KEY_COLUMNS INTO V_KEY_COL_LIST FROM UTI_DUP_CHK WHERE
UDC_TABLE_NAME=''||V_IN_TABLE_NAME||'';
SELECT REPLACE(V_KEY_COL_LIST,',','||''~''||') INTO V_KEY_COL_LIST1 FROM
DUAL;
SQL_STMT :='SELECT REPLACE(UDC_KEY_COLUMNS,'','',''~'')
FROM UTI_DUP_CHK WHERE UDC_TABLE_NAME='''||V_IN_TABLE_NAME||'''';
SQL_STMT3:='SELECT ('||SQL_STMT||') KEY_COLUMNS,
'||V_KEY_COL_LIST1||' KEY_VALUES,
'''||V_IN_TABLE_NAME||''''||' ODS_TABLE,
'''||V_SOURCE_FILE||''''||' SOURCE_FILE,
TO_CHAR(SYSDATE,''DD-Mon-YYYY HH:MI:SS AM'') LOAD_TIME
FROM (
SELECT DISTINCT '||V_KEY_COL_LIST||',COUNT(*) CNT
FROM '||V_IN_TABLE_NAME||''|| ' WHERE '||V_COL||'>SYSDATE
GROUP BY '||V_KEY_COL_LIST||')A
WHERE A.CNT=1;';
が
execute immediate 'INSERT INTO UTI_ERR_DUP_CHK SQL_STMT3';
のようにこれを実行しようとしています。しかし、それが助けをexecuting.Pleaseされていません私。あなたはまた、必要
execute immediate 'INSERT INTO UTI_ERR_DUP_CHK ' || SQL_STMT3;
:
どのようなエラーメッセージが表示されますか?それともちょうどハングアップしますか?または、間違った出力を返しますか? – z32a7ul