【发布时间】:2017-10-13 12:06:56
【问题描述】:
我有一个需要调用函数的 sqlplus 脚本。该函数动态创建一个 SQL 选择,并且已经在数据库中编译。 我的脚本需要调用此函数,执行它返回的 SQL 请求,然后将数据假脱机到 CSV 文件中。 我的 SQLPLUS 代码如下:
SET HEAD OFF
SET TRIMOUT ON
SET TRIMSPOOL ON
SET LINESIZE 32000
SET PAGESIZE 0
SET TERMOUT OFF
SET ECHO OFF
SET COLSEP ,
spool /a/b/rvibap/c/&1..csv
EXECUTE IMMEDIATE build_select(&1)
spool off;
/
但是,我的 CSV 文件中出现以下错误:
BEGIN IMMEDIATE build_select(TYPE); END;
*
ERROR at line 1:
ORA-06550: line 1, column 17:
PLS-00103: Encountered the symbol "BUILD_SELECT" when expecting one of the following:
:= . ( @ % ;
The symbol ":=" was substituted for "BUILD_SELECT" to continue.
我通过以下方式调用我的 SQL 脚本:
@test.sql 类型
我还测试了 build_select 函数,它运行正常;以字符串形式返回查询。
【问题讨论】: