看法 :
CREATE OR REPLACE VIEW vw_XYZ AS
SELECT "TRN_REF_NO","ESN","COMPONENT","AMOUNT","CURRENCY","WAIVER","CHG_DESC"
FROM
( WITH DATA AS
( SELECT LEVEL L FROM DUAL CONNECT BY LEVEL <= 5 )
SELECT TRN_REF_NO,1 "ESN",'CHG_AMT_'||L "COMPONENT",
DECODE(L,1,CHG_AMT,2,CHG_AMT_1,3,CHG_AMT_2,4,CHG_AMT_3,5,CHG_AMT_4) "AMOUNT",
DECODE(L,1,CHG_CCY,2,CHG_CCY_1,3,CHG_CCY_2,4,CHG_CCY_3,5,CHG_CCY_4) "CURRENCY",
DECODE(L,1,WAIVER,2,WAIVER1,3,WAIVER2,4,WAIVER3,5,WAIVER4) "WAIVER",
DECODE(L,1,CHG_DESC,2,CHG_DESC1,3,CHG_DESC2,4,CHG_DESC3,5,CHG_DESC4) "CHG_DESC"
FROM DATA
JOIN tb_abc
ON NVL(DECODE(L,1,CHG_AMT,2,CHG_AMT_1,3,CHG_AMT_2,4,CHG_AMT_3,5,CHG_AMT_4),'-1') <> -1
ORDER BY TRN_REF_NO );
包体中的错误: 行:
INSERT INTO vw_XYZ 面临的错误: PACKAGE BODY 的编译错误
错误:PL/SQL:ORA-01031:权限不足
请注意:我们仅在19c数据库中遇到此问题。在12c数据库版本中,它编译成功