我曾经能够像db.do("select * from table")
那样使用dbi并得到我需要的结果,但是我现在必须使用模式来访问我需要的表格,上面的行会给我dbi错误:< / p>
DBI::ProgrammingError: ORA-00942: table or view does not exist
from stmt.c:312:in oci8lib.so
from C:/ruby/lib/ruby/gems/1.8/gems/ruby-oci8-2.0.6-x86-mingw32/lib/oci8/oci8.rb:288:in `exec'
from C:/ruby/lib/ruby/gems/1.8/gems/ruby-oci8-2.0.6-x86-mingw32/lib/dbd/OCI8.rb:354:in `execute'
from C:/ruby/lib/ruby/gems/1.8/gems/dbi-0.4.5/lib/dbi/base_classes/database.rb:96:in `execute'
from C:/ruby/lib/ruby/gems/1.8/gems/dbi-0.4.5/lib/dbi/base_classes/database.rb:114:in `do'
from C:/ruby/lib/ruby/gems/1.8/gems/dbi-0.4.5/lib/dbi/handles/database.rb:106:in `do'
from (irb):35
from ♥:0
我可以使用此db.do("select * from schema.table")
访问该表,但我不想更改table
到schema.table
的每一行。
请告诉我如何在不改变任何行的情况下让我的脚本工作?
答案 0 :(得分:0)
在运行任何其他语句之前尝试运行db.do(“SET SCHEMA SCHEMA_NAME”)
编辑:正确的语法是: db.do(“ALTER SESSION SET CURRENT_SCHEMA = SCHEMA_NAME”)
这会将您的默认架构更改为您希望在会话期间使用的架构