Oracle stored procs

Hi,

Has anyone managed to get calls to oracle stored procs to work yet?

Cheers

Andrew

AndrewMcDonagh wrote:

Hi,

Has anyone managed to get calls to oracle stored procs to work yet?

Cheers

Andrew

Sure. Using DBI with OCI8:

dbh = DBI.connect(dsn, user, pass)
sth = dbh.prepare(“begin foo.some_proc; end;”)
sth.execute

I don’t think Kubo supports in/out parameters yet, though it has been
discussed.

Regards,

Dan

This communication is the property of Qwest and may contain confidential
or
privileged information. Unauthorized use of this communication is
strictly
prohibited and may be unlawful. If you have received this communication
in error, please immediately notify the sender by reply e-mail and
destroy
all copies of the communication and any attachments.

On 7/26/06, AndrewMcDonagh [email protected] wrote:

Hi,

Has anyone managed to get calls to oracle stored procs to work yet?

Works fine for me out of the box. Here are some extentions I made to
the OCI8 class to make it easier for me to deal with a ref cursor
returned from a package function:

class OCI8
class Cursor
def get_array
ret = []
while row = self.fetch_hash
ret << row
end
ret
end
def bind(binds)
binds.each_pair do |k,v|
if v.respond_to? :indices
self.bind_param(k, v[0], v[1], v[2])
else
self.bind_param(k, v)
end
end if binds
end
end

def get_ref(plsql, binds=false, &block)
cur = self.parse(‘begin :rs := ‘+plsql+’; end;’)
cur.bind_param(‘:rs’, OCI8::Cursor)
cur.bind(binds)
cur.exec
if block_given?
arr = cur[‘:rs’].get_array.collect &block
else
cur[‘:rs’].get_array
end
end
end

Daniel B. wrote:

Sure. Using DBI with OCI8:
Dan

This communication is the property of Qwest and may contain confidential or
privileged information. Unauthorized use of this communication is
strictly prohibited and may be unlawful. If you have received this
communication in error, please immediately notify the sender by reply
e-mail and destroy all copies of the communication and any attachments.

sweet cheers!

last time I looked it didn’t work or work well - hence the question.

Andrew