[DB-SIG] create procedure / callproc question
Matthew T. Kromer
Wed, 04 Sep 2002 16:10:58 -0400
Bob Gailer wrote:
> Using cx_Oracle:
> >>> cursor.execute("create or replace procedure pump1(a in number) as
> begin null; end;")
> >>> cursor.callproc("pump1(1)")
> Results in:
> DatabaseError: ORA-06550: line 1, column 7:
> PLS-00801: internal error 
> ORA-06550: line 1, column 7:
> PL/SQL: Statement ignored
> What do I need to fix?
> My goal is to have an out parameter (or rmake pump1 a function) with
> data returned to Python. What do I change to do that? I'm assuming the
> create changes to:
> "create or replace procedure pump1(a out number) as begin a :=
> something; end;"
> I also notice that if I make an error in the create statement, execute
> returns no error to Python!
I suspect you want something similar to
or thereabouts. According to the DB API, all parameters to the stored
procedure are returned as a list, so you'd get back (1,) as well. If
that was an IN/OUT parameter, what you'd get back could have been
changed by the DB.