PL/SQLからこの問合せをコールするときにORA-06502エラーが発生します。 しかし、SQLプロンプトから試してみるとうまくいきます。ORA-06502:スタンドアロンSQLで動作する問合せ
SQLから、これが予想される出力できますプロンプト:
SELECT *
FROM
(
SELECT
COL.BAN,
MAX (COL.COL_ACTV_CODE) AS COL_ACTV_CODE,
MAX (TO_CHAR(COL.COL_ACTV_DATE,'MM')) AS COL_ACTV_DATE
FROM
COLLECTION COL,
COLLECTION_ACTIVITIES CAC
WHERE (CAC.SEVERITY_LEVEL , TO_CHAR(COL.COL_ACTV_DATE,'YYYYMM')) IN
(SELECT
MAX(CAC.SEVERITY_LEVEL),
MAX(TO_CHAR(COL.COL_ACTV_DATE, 'YYYYMM'))
FROM
COLLECTION COL,
COLLECTION_ACTIVITIES CAC
WHERE
COL.COL_ACTV_CODE = CAC.COL_ACTIVITY_CODE
GROUP BY TO_CHAR (COL.COL_ACTV_DATE , 'YYYYMM')
)
GROUP BY COL.BAN
ORDER BY TO_CHAR (COL.COL_ACTV_DATE , 'YYYYMM') DESC
)
PIVOT
(
MAX(COL_ACTV_CODE)
FOR COL_ACTV_DATE in ('01' as "JAN", '02' as "FEB", '03' as "MAR"));
BAN J F M A M J J A S O N D
---------- - - - - - - - - - - - -
90314228 W
90314009 K
90314748 E
90314568 E
90314328 W
しかし、PL/SQLからの:
BEGIN
STMT_STR := 'CREATE TABLE ACD_COL_ST
PCTUSED 90
NOLOGGING
AS
SELECT *
FROM
(
SELECT
COL.BAN,
MAX (COL.COL_ACTV_CODE) AS COL_ACTV_CODE,
MAX (TO_CHAR(COL.COL_ACTV_DATE,'MM')) AS COL_ACTV_DATE
FROM
COLLECTION COL,
COLLECTION_ACTIVITIES CAC
WHERE (CAC.SEVERITY_LEVEL , TO_CHAR(COL.COL_ACTV_DATE,'YYYYMM')) IN
(SELECT
MAX(CAC.SEVERITY_LEVEL),
MAX(TO_CHAR(COL.COL_ACTV_DATE, 'YYYYMM'))
FROM
COLLECTION COL,
COLLECTION_ACTIVITIES CAC
WHERE
COL.COL_ACTV_CODE = CAC.COL_ACTIVITY_CODE
GROUP BY TO_CHAR (COL.COL_ACTV_DATE , 'YYYYMM')
)
GROUP BY COL.BAN
ORDER BY TO_CHAR (COL.COL_ACTV_DATE , 'YYYYMM') DESC
)
PIVOT
(
MAX(COL_ACTV_CODE)
FOR COL_ACTV_DATE in ('01' as "JAN", '02' as "FEB", '03' as "MAR"))';
EXECUTE IMMEDIATE STMT_STR;
EXCEPTION WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('An error was encountered creating table ACD_COL_ST'||SQLCODE||' - ERROR - '||SQLERRM);
END;
COMMIT;
私はエラーを取得する:
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
「&1」に対するクエリに入力した入力は何ですか?そしてあなたはまだあなたのPLエラーを取得する小さなクエリを簡素化することができますか? –
これについては本当にわかりませんが、あなたは '&1'を':1'に変更しようとしましたか? &は置換変数のためのSQL * Plusの機能です。あなたの問題を解決するかどうかはわかりませんが、PL/SQLでの使用は控えてください。 – brenners1302
質問が簡単なクエリで更新されました – user2802527