# Need Help! oci8lib.so: ORA-06550 error

**URL:** <https://www.ruby-forum.com/t/need-help-oci8lib-so-ora-06550-error/140219>\
**Category:** Ruby\
**Created:** [June 12, 2008, 12:56am UTC](https://www.ruby-forum.com/t/need-help-oci8lib-so-ora-06550-error/140219 "2008-06-12T00:56:02Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![sri](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/e9a140/32.png) [@sri](https://www.ruby-forum.com/u/sri)\
**Post date:** [June 12, 2008, 12:56am UTC](https://www.ruby-forum.com/t/need-help-oci8lib-so-ora-06550-error/140219/1 "2008-06-12T00:56:02Z")

</div>

stmt.c:541:in oci8lib.so: ORA-06550: line 1, column 7: (OCIError)  
PLS-00306: wrong number or types of arguments in call to ‘tax’  
ORA-06550: line 1, column 7:  
PL/SQL: Statement ignored from  
c:/ruby/lib/ruby/site\_ruby/1.8/oci8.rb:758:in `exec' from c:/ruby/lib/ruby/site_ruby/1.8/oci8.rb:141:in`do\_ocicall’  
from c:/ruby/lib/ruby/site\_ruby/1.8/oci8.rb:758:in `exec’  
from tax.rb:30

here is my code…

Procedure description:

item\_id\_in number in  
bundle\_id\_in number in  
state\_code\_in varchar2 in  
primary\_zip\_in varchar2 in  
city\_name\_in varchar2 in  
num\_items\_in number in  
gross\_amt\_in number in  
shipping\_amt\_in number in  
gift\_wrap\_amt\_in number in  
vas\_amt\_in number in  
tax\_request\_id\_out number out  
product\_tax\_info\_out ref cursor out  
product\_sales\_tax\_out number out  
shipping\_sales\_tax\_out number out  
gift\_wrap\_sales\_tax\_out number out  
vas\_tax\_out number out  
shipping\_method\_id\_in number in  
wrap\_pattern\_id\_in number in  
ship\_to\_address\_id\_in number in

RUBY CODE:  
plsql =conn.parse(“BEGIN  
tax(:id,:bid,:state,:zip,:city,:itemCount,:amt,:shipAmt,  
:giftAmt,:vasAmt,:taxReqIdOut,:prodTaxOut,:salesTaxOut,:shipTaxOut,:giftTaxOut,:vasTax,:shipMethodId,:wrapPatternId,:shipAddId);  
END;”)

plsql.bind\_param(’:id’, 796023)  
plsql.bind\_param(’:bid’, nil, Float)  
plsql.bind\_param(’:state’, “CO”)  
plsql.bind\_param(’:zip’, “80231”)  
plsql.bind\_param(’:city’, “Denver”)  
plsql.bind\_param(’:itemCount’, 1)  
plsql.bind\_param(’:amt’, 10.97)  
plsql.bind\_param(’:shipAmt’, 2.02)  
plsql.bind\_param(’:giftAmt’, 0)  
plsql.bind\_param(’:vasAmt’, 0)

plsql.bind\_param(’:taxReqIdOut’, OCI8::Cursor)  
plsql.bind\_param(’:prodTaxOut’, OCI8::Cursor)  
plsql.bind\_param(’:salesTaxOut’, OCI8::Cursor)  
plsql.bind\_param(’:shipTaxOut’, OCI8::Cursor)  
plsql.bind\_param(’:giftTaxOut’, OCI8::Cursor)  
plsql.bind\_param(’:vasTax’, OCI8::Cursor)

plsql.bind\_param(’:shipMethodId’, 0)  
plsql.bind\_param(’:wrapPatternId’, 0)  
plsql.bind\_param(’:shipAddId’, 0)

plsql.exec

taxReqcursor = plsql[’:taxReqIdOut’]  
prodTaxcursor = plsql[’:prodTaxOut’]  
taxcursor = plsql[’:prodTaxOut’]  
shipTaxcursor = plsql[’:shipTaxOut’]  
giftTaxcursor = plsql[’:giftTaxOut’]

while r = taxcursor.fetch()  
puts r  
end

puts taxcursor

conn.logoff

---

<div class="post-metadata">

**Author:** ![sri](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/e9a140/32.png) [@sri](https://www.ruby-forum.com/u/sri)\
**Post date:** [June 13, 2008, 1:12am UTC](https://www.ruby-forum.com/t/need-help-oci8lib-so-ora-06550-error/140219/2 "2008-06-13T01:12:46Z")

</div>

On 6/11/08, Sri K. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> stmt.c:541:in oci8lib.so: ORA-06550: line 1, column 7: (OCIError)  
> PLS-00306: wrong number or types of arguments in call to ‘tax’  
> ORA-06550: line 1, column 7:  
> PL/SQL: Statement ignored from  
> c:/ruby/lib/ruby/site\_ruby/1.8/oci8.rb:758:in `exec' from c:/ruby/lib/ruby/site_ruby/1.8/oci8.rb:141:in `do\_ocicall’  
> from c:/ruby/lib/ruby/site\_ruby/1.8/oci8.rb:758:in `exec’  
> from tax.rb:30

Do smaller, “hello world” procedures execute properly for you?

---

<div class="post-metadata">

**Author:** ![sri](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/e9a140/32.png) [@sri](https://www.ruby-forum.com/u/sri)\
**Post date:** [June 13, 2008, 6:04am UTC](https://www.ruby-forum.com/t/need-help-oci8lib-so-ora-06550-error/140219/3 "2008-06-13T06:04:51Z")

</div>

On Thu, Jun 12, 2008 at 7:55 AM, Sri K. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> stmt.c:541:in oci8lib.so: ORA-06550: line 1, column 7: (OCIError)  
> PLS-00306: wrong number or types of arguments in call to ‘tax’  
> …  
> tax\_request\_id\_out number out  
> …  
> plsql.bind\_param(‘:taxReqIdOut’, OCI8::Cursor)

You cannot bind a number argument as OCI8::Cursor.  
Oracle doesn’t know how to convert implicitly ref cursor  
(OCI8::Cursor) to Number.  
Bind it as Float or Integer.

plsql.bind\_param(‘:taxReqIdOut’, nil, Float)  
or  
plsql.bind\_param(‘:taxReqIdOut’, nil, Integer)  
…  
plsql.exec  
…  
tax\_request\_id = plsql[‘:taxReqIdOut’]

---

<div class="post-metadata">

**Author:** ![sri](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/e9a140/32.png) [@sri](https://www.ruby-forum.com/u/sri)\
**Post date:** [June 13, 2008, 7:36pm UTC](https://www.ruby-forum.com/t/need-help-oci8lib-so-ora-06550-error/140219/4 "2008-06-13T19:36:57Z")

</div>

Great!! You r correct. It worked.  
Thanks for the help.
