PLS-00103:遇到符号“COLUMNS”

Posted

技术标签:

【中文标题】PLS-00103:遇到符号“COLUMNS”【英文标题】:PLS-00103: Encountered the symbol "COLUMNS" 【发布时间】:2015-12-17 00:17:19 【问题描述】:

我不明白问题是什么:

ORA-06550:第 13 行,第 57 列:PLS-00103:遇到符号 “列”

declare

    cursor rec_tab is select table_name, COUNT(column_name) columns
    from user_tab_columns
    group by table_name;
    num_row number(6);

begin

    for ind_tab in rec_tab loop
    execute IMMEDIATE 'select COUNT(*) from '||ind_tab.table_name into num_row;
    dbms_output.put_line
        (RPAD(ind_tab.table_name,30)||' '||RPAD(ind_tab.columns,6)||num_row);
    end loop;
end;
/

【问题讨论】:

COLUMNS 是一个 PLSQL reserved word。为列别名使用不同的名称,例如 column_count 【参考方案1】:

在这里使用"COLUMNS" 而不是columns

(RPAD(ind_tab.table_name,30)||' '||RPAD(ind_tab."COLUMNS",6)||num_row);

这里可能会出现另一个问题:num_row number(6);,因为它只允许存储最大为 999.999 的数字,当某些表有更多行时会出现错误。

【讨论】:

以上是关于PLS-00103:遇到符号“COLUMNS”的主要内容,如果未能解决你的问题,请参考以下文章

PLS-00103 遇到符号“数字”

PLS-00103:遇到符号“,”

错误(30,11):PLS-00103:遇到符号更新错误

获取 PLS-00103:在创建包时遇到符号“/”错误

PLS-00103:遇到符号

PLS-00103:遇到符号“/”