On Friday, March 16, 2012 1:49:43 AM UTC-7, Christian MICHON wrote:

> This reminded me I can do DB.run and DB.fetch...
>
> Let's call the default schema I want to access 'MINE' and the table I
> want to access 'MYREC' (I do not wish to disclose more from my
> oracle).
>
> What I figured out is:
> - DB.tables gives []
> - DB['MINE.MYREC'].count works
>

This only works by accident.
 

> - DB['MINE.MYREC'].first fails
> - DB['MINE.MYREC'].columns fails
>

For these, you should be using:

  DB.from(:mine__myrec) or DB.from('MINE.MYREC'.lit)
 

> - DB.schema 'MINE.MYREC' fail
>
Try:

  DB.schema(:mine__myrec)


I read that the following SQL in Oracle can be use to avoid prefixing
> my select queries: 'ALTER SESSION SET CURRENT_SCHEMA ='
>
> So I did this:
> - DB.run("ALTER SESSION SET CURRENT_SCHEMA = MINE")
> - DB.fetch("select * from MYREC").first
>
> and it works well enough for me to be able to grab the metadata I
> need. Neat. Dirty, but it works.
>

That only works in simple cases (single-threaded, no disconnects).  You 
want to run that SQL in the after_connect proc, but you have to understand 
that the after_connect proc is yielded the connection object, so you need 
to use connection specific code to run that SQL.  For the JDBC adapter, 
you'll need something like:

  :after_connect=>proc{|conn| conn.createStatement.execute('ALTER SESSION 
SET CURRENT_SCHEMA = MINE')}
 

> Thanks Jeremy. We still have possible issues to fix (:default_schema
> and :after_connect (passing the alter session command) did not work as
> expected).
>

OK.  After trying the above, please let me know how things work.

Thanks,
Jeremy

-- 
You received this message because you are subscribed to the Google Groups 
"sequel-talk" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/sequel-talk/-/IzeXPBDdKGwJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sequel-talk?hl=en.

Reply via email to