我试图在运行时在 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/$PASSWORD@$SERVICE_NAME <<EOF
$OUT_DECLARE_STRING
exec $OWNER.$PROCEDURE_NAME($I_PARAMETER,$O_PARAMETER);
select $OUTPUT from dual;
COMMIT;
EXIT;
EOF`
我收到错误消息:
用法:VAR[IABLE] [ [ 数字 | 字符 | 字符 (n [字符|字节]) | VARCHAR2 (n [CHAR|BYTE]) | NCHAR | NCHAR (n) | NVARCHAR2 (n) | CLOB | NCLOB | 斑点 | BFILE REFCURSOR | BINARY_FLOAT | BINARY_DOUBLE ] ] SP2-0552:未声明绑定变量“O_OUTSUMMARYDATE”。
有人可以帮我解决这个问题。