【发布时间】:2019-01-03 03:52:04
【问题描述】:
在编写 PL/SQL 块时,我收到如下所示的错误。请告诉我这个错误的原因?
DECLARE
TYPE TABLE_NAME IS VARRAY(17) OF VARCHAR(255);
TABLENAME TABLE_NAME;
TOTAL INTEGER;
BEGIN
TABLENAME := TABLE_NAME ('FA_AS_ASSIGNMENTS','FA_PE_PHONES' );
TOTAL := TABLENAME.COUNT;
FOR i IN 1 .. TOTAL
LOOP
INSERT
INTO CUSTOM_ODILOAD_TABLE_COUNT
(
TABLE_NAME,
ROW_COUNT
)
VALUES
(
TABLENAME(i),
(SELECT COUNT(*) FROM TABLENAME(i)
)
);
END LOOP;
END;
错误:
ORA-06550:第 19 行,第 40 列:PL/SQL:ORA-00907:缺少右括号
ORA-06550:第 10 行,第 5 列:PL/SQL:SQL 语句被忽略 06550.00000 -
“第 %s 行,第 %s 列:\n%s”
*原因:通常是 PL/SQL 编译错误。
*Action:匿名块完成
【问题讨论】:
-
错误原因:SQL中不允许动态表名。
-
以下是收到的错误:错误报告:ORA-06550:第 19 行,第 40 列:PL/SQL:ORA-00907:缺少右括号 ORA-06550:第 10 行,第 5 列:PL/ SQL:SQL 语句忽略 06550。00000 - “行 %s,列 %s:\n%s” *原因:通常是 PL/SQL 编译错误。 *操作:匿名块完成