【发布时间】:2019-08-22 11:27:14
【问题描述】:
我正在尝试实现一个简单的过程,该过程计算给定字段的不同值的比例并将结果存储在辅助表中。
CREATE TABLE TEST_DATA_QTY_AND
(
TABLE_ID VARCHAR2(30),
FLD_ID VARCHAR2(30),
MEASURE NUMBER(1, 2),
DATA_T DATE DEFAULT SYSDATE,
NOTES VARCHAR2(255)
);
CREATE OR REPLACE PROCEDURE DATA_QTY_AND(pTable IN VARCHAR2, pField IN VARCHAR2)
IS
v_sql varchar2(2000);
v_sql := 'INSERT INTO TEST_DATA_QTY_AND (TABLE_ID, FLD_ID, MEASURE)'||
'VALUES('||
pTable||', '||pField||', ('||
'SELECT SUM(CASE WHEN '||pField||' <> 0 THEN 1 END) /COUNT(*) FROM'||
pTable||'));';
EXECUTE IMMEDIATE(v_sql);
COMMIT;
EXCEPTION
...
END;
但是,我不断收到 ERROR- ORA-00923: FROM keyword not found where expected。 任何帮助表示赞赏。
谢谢
【问题讨论】:
标签: sql oracle plsql oracle11g dynamic-sql