Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

PowerBuilder and Oracle 10g: Invalid stored procedure parameter type 'BOOLEAN'

256 views
Skip to first unread message

Tarun

unread,
Sep 8, 2009, 9:56:42 AM9/8/09
to
Hi,
I am getting the following error message while executing a procedure
'update_status' in the package pkg_test.

Invalid 'Stored procedure parameter type of boolean on DDD'

Here is the signnature of the procedure.
pkg_test.update_status(AAA varchar2, BBB number, CCC number, DDD
varchar2, EEE boolean default false)‘

and the way of calling this procedure is
pkg_test.update_status ('TEST',12,2345,'PLEASEWORK',TRUE)

The communication between the powerbuilder 10.5 and oracle10g is
through the ORACLE 10g drivers. After the execution the SQLCA.SQLCODE
= -1, SQLCA.SQLDBCODE = 999, SQLCA,SQLERRTEXT + 'Invalid stored
procedure parameter type of 'BOOLEAN' on 'DDD'.

The interesting factor here is that when i run the same execute
command through the tool 'SQL Developer', it is working fine but
through powerbuilder I am getting the error mentioned above. Even when
i try to run this through OLE DB drivers, it is working fine but my
problem is that i have to do this through Oracle 10g drivers only.


Could you pelase help me to come out of this problem .
Tarun.

Terry Dykstra [TeamSybase]

unread,
Sep 8, 2009, 11:53:10 AM9/8/09
to
I'm surprised you can get it to work through other tools, because Oracle
officially does not support passing booleans from external applications.
The standard work around is to call a dummy procedure in your application
that uses 0/1, yes/no or something like that. In turn this dummy procedure
calls your regular procedure.

--
Terry Dykstra (TeamSybase)
http://powerbuilder.codeXchange.sybase.com/
http://casexpress.sybase.com
product enhancement requests:
http://my.isug.com/cgi-bin/1/c/submit_enhancement

"Tarun" <tarun...@gmail.com> wrote in message
news:61adcfc8-9eda-4cc1...@g1g2000pra.googlegroups.com...

Arul

unread,
Dec 16, 2009, 4:27:35 PM12/16/09
to
Another workaround without a dummy procedure.
Run the procedure inside a PL/SQL block using EXECUTE IMMEDIATE:
ls_sql = "BEGIN
pkg_test.update_status('TEST',12,2345,'PLEASEWORK',TRUE); END;"
EXECUTE IMMEDIATE :ls_sql ;

Arul P T

"Terry Dykstra [TeamSybase]" <tddy...@forestoil.ca> wrote in message
news:4aa67de6$1@forums-1-dub...

0 new messages