2
我試圖用cx_oracle運行這些命令:如何使用cx_Oracle運行非查詢sql命令?
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: not a query
那麼如何運行這些不是使用cx_oracle查詢的sql命令?
編輯:
進行更改後,這是我現在有:
curs.callproc('add_command_pkg.add_command', [],
{ 'command_id' : 7,
'session_id' : 'null',
'p_expiry_time' : 'sysdate + 7',
'config_id' : 6 })
當我運行它,我得到這個錯誤:
File "N:\App\MainWidget.py", line 456, in myFunc
'config_id' : 6 })
cx_Oracle.DatabaseError: ORA-01858: a non-numeric character was found where a numeric was expected
ORA-06512: at line 1
而且,我怎麼犯這個?
Thasnk !.我對代碼做了一些更改,但是現在我得到一個新的錯誤。你可以看一下嗎? –
看起來它可能是Oracle過程本身的問題,因爲我期望python會引發一個TypeError,但是你錯誤地傳遞了一些變量,例如'null''應該是'None'。 – Ben
我應該如何通過日期?當我嘗試以「sysdate + 7」傳遞它時,出現錯誤。當我嘗試以'datetime.now()+ timedelta(秒= 10)'的形式傳遞它時'我的應用程序鎖定了。 –