0
我想在運行時在unix中聲明sqlplus中的幾個變量,但字符串在單行中並導致錯誤。我需要的字符串是多線串將多行字符串傳遞給unix中的sqlplus
代碼片段:
#this string is generated at runtime
OUT_DECLARE_STRING="variable IO_TABLE_NAME varchar2(4000); variable O_NROFROWS varchar2(4000); variable O_OUTPUTSTATUS varchar2(4000); variable O_OUTPUTMESSAGE varchar2(4000); variable O_OUTSUMMARYDATE varchar2(4000); variable O_SORT_ORDER varchar2(4000); variable O_RECORD_LIMIT varchar2(4000); variable O_SELECTED_COLUMNS varchar2(4000);"
現在我通過這個OUT_DECLARE_STRING爲sqlplus,作爲
QUERY_RESULT=`sqlplus -s $USER_NAME/[email protected]$SERVICE_NAME <<EOF
$OUT_DECLARE_STRING
exec $OWNER.$PROCEDURE_NAME($I_PARAMETER,$O_PARAMETER);
select $OUTPUT from dual;
COMMIT;
EXIT;
EOF`
我得到的錯誤爲:
用法:VAR [IABLE] [[NUMBER | CHAR | CHAR(n [CHAR | BYTE])| VARCHAR2(n [CHAR | BYTE])| NCHAR | NCHAR(n)| NVARCHAR2(n)| CLOB | NCLOB | BLOB | BFILE REFCURSOR | BINARY_FLOAT | BINARY_DOUBLE]] SP2-0552:未聲明綁定變量「O_OUTSUMMARYDATE」。
有人可以幫我解決這個問題。