加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

oracle – 将文件内容作为参数传递给Sql * Plus命令

发布时间:2021-03-14 05:17:14 所属栏目:站长百科 来源:网络整理
导读:我正在实行编写一个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;

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读