一、问题描述
今天写一个存储过程,其中一段语句如下:
----------
编译通过,测试时发现报错:ORA-009111:无效字符。
二、分析
经过分析,将问题定位至该sql语句。于是先输出了v_sql,贴至SQL窗口查询,发现能正常使用。那么问题可能出在execute immediate v_sql into v_count;上。于是网上百度了一下,发现也有类似的错误,原因是字符串内sql语句不能带分号!这个问题比较容易疏忽,在此记录下来。
三、解决方案
将字符串内SQL语句中的末尾的分号去掉即可,如下:
v_sql := 'select count(*) from SUPER.' || v_table || '@' || p_dblink ||