我无法为下面代码中写入的变量“y”提供输入。任何人都可以帮助我们。 代码:
#!/bin/bash
${ORACLE_HOME}/bin/sqlplus -s abcd/passabcd <<EOF
declare
res varchar2(9) := '&y';
begin
insert into abc values(10);
if res in ('commit;')
then
EXECUTE IMMEDIATE 'commit;';
elsif res in ('rollback;')
then
EXECUTE IMMEDIATE 'rollback;';
else
DBMS_OUTPUT.PUT_LINE('Enter Correct Input');
end if;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('Error msg ' || substr(sqlerrm,1,200));
end;
/
EOF
如果我运行它,下面是屏幕。我自动得到sp2-0546错误而没有输入任何输入。
[oracle@ssmz861 ~]$ ./mm.sh
Enter value for y:SP2-0546: User requested Interrupt or EOF detected.
[oracle@ssmz861 ~]$
这是一个场景:我有一个pl/sql
代码,我需要给sqlplus
以<EOF .....EOF.
之类的方式执行,我需要查看一个查询的输出并通过提供输入来决定是否需要提交或回滚。