cx_oracle を使用してこれらのコマンドを実行しようとしています。
begin
add_command_pkg.add_command
( command_id => 7,
expiry_time => sysdate + 7
);
add_command_pkg.add_command
( command_id => 12,
expiry_time => sysdate + 7
);
commit;
end;
だから、これは私のPythonコードです:
dsn = cx_Oracle.makedsn(hostname, port, sid)
orcl = cx_Oracle.connect(username + '/' + password + '@' + dsn)
curs = orcl.cursor()
cmd = "begin \n\
add_command_pkg.add_command \n\
( command_id => 7, \n\
expiry_time => sysdate + 7 \n\
); \n\
\n\
add_command_pkg.add_command \n\
( command_id => 12, \n\
expiry_time => sysdate + 7 \n\
); \n\
commit; \n\
end;"
curs.execute(cmd)
orcl.close()
このコードを実行すると、次のエラーが発生します。
cx_Oracle.InterfaceError: クエリではありません
では、cx_oracle を使用してクエリではないこれらの SQL コマンドを実行するにはどうすればよいでしょうか。
編集:
変更を加えた後、これは私が今持っているものです:
curs.callproc('add_command_pkg.add_command', [],
{ 'command_id' : 7,
'session_id' : 'null',
'p_expiry_time' : 'sysdate + 7',
'config_id' : 6 })
これを実行すると、次のエラーが発生します。
ファイル "N:\App\MainWidget.py"、456 行目、myFunc
'config_id' : 6 })
cx_Oracle.DatabaseError: ORA-01858: 数値が必要な場所に非数値文字が見つかりました
ORA-06512: 行1
また、これをコミットするにはどうすればよいですか?