【发布时间】:2021-07-06 16:07:34
【问题描述】:
我正在尝试将变量从 python 脚本传递到 PL/SQLscript。 但我收到“SP2-0310:无法打开文件”错误
下面是代码:
def runSqlQuery():
connectString = '<username>/"<password>"@//MYHOST:1521/TEST'
var1=input('Enter VAR1: ')
var2=input('Enter VAR2: ')
session = ['sqlplus', '-S', connectString,f'@a.sql {var1} {var2}']
subprocess.call(session)
runSqlQuery()
SET SERVEROUTPUT ON
DECLARE
TYPE usr IS VARRAY(100) OF VARCHAR2(100);
v_new_rw_user usr:=usr('&1');
v_obj_owner usr:=usr('&2');
BEGIN
FOR j IN v_new_rw_user.first..v_new_rw_user.last
LOOP
DBMS_OUTPUT.PUT_LINE('Read Only User : ' || UPPER(v_new_rw_user(j)) ||CHR(10));
FOR i IN v_obj_owner.first..v_obj_owner.last
LOOP
DBMS_OUTPUT.PUT_LINE(CHR(10)||'Database Schema : ' || UPPER(v_obj_owner(i)) ||CHR(10));
END LOOP;
END LOOP;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(CHR(10)||'ERROR CODE : ' || SQLCODE ||CHR(10) || 'ERROR MESSAGE: '|| SQLERRM || CHR(10));
END;
/
EXIT;
Appreciate any help. Thanks in advance
【问题讨论】:
-
a.sql 定义在哪里?
-
a.sql 与 python 脚本放置在同一位置。我能够在不从 python 传递变量的情况下运行 plsql,其中在调用 plsql 脚本时提供了变量。但我的要求是从 python 脚本传递变量
标签: python-3.x oracle plsql sqlplus