oracle – 将文件内容作为参数转达给Sql * Plus呼吁
发布时间:2021-03-09 16:35:11 所属栏目:站长百科 来源:网络整理
导读:我正在尝试编写一个sqlplus命令,该命令根据存储在.sql文件中的查询创建一个表. 包含查询的特定.sql文件将作为变量( v_InputQuery)提供给我的sqlplus命令. 我尝试过类似的东西,但它不起作用. CREATE TABLE v_OutputTable AS( v_InputQuery); 我收到一条错误消
|
我正在尝试编写一个sqlplus命令,该命令根据存储在.sql文件中的查询创建一个表. 包含查询的特定.sql文件将作为变量(& v_InputQuery)提供给我的sqlplus命令. 我尝试过类似的东西,但它不起作用. CREATE TABLE &v_OutputTable AS ( < &v_InputQuery ) ; 我收到一条错误消息,说明缺少SELECT关键字. 我真正喜欢的是& v_InputQuery不能替换为用户指定的文件名,而是替换文件的实际内容.有没有办法做到这一点? 非常感谢你. 解决方法不幸的是,您不能创建SQL * Plus命令,而是创建一个shell脚本来执行它!让我们说my_script.sh在下面 #you can always complete the user interaction at unix/dos
USER=your_user
PASS=your_pass
DB=your_db
OUTPUT_TABLE=$1;
QUERY_FILE=$2;
SELECT_QUERY=`cat $QUERY_FILE`;
sqlplus -S ${USER}/${PASS}@${DB} << !
SET SERVEROUTPUT ON;
VAR EXITCODE NUMBER;
BEGIN
EXECUTE IMMEDIATE ' CREATE TABLE $OUTPUT_TABLE AS $SELECT_QUERY ';
:EXITCODE := SQLCODE;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLERRM);
:EXITCODE := SQLCODE;
END;
/
exit :EXITCODE
!
执行如下脚本(取决于操作系统) ksh my_script MY_OUTPUT_TABLE my_sql.sql; (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

