Раньше я использовал dbi как db.do("select * from table")
и получил нужные результаты, однако теперь мне нужно использовать схему для доступа к таблицам, которые мне нужны, и приведенная выше строка даст мне ошибка DBI:Синтаксис для Ruby DBI с базой данных Oracle и схемой
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
.
Скажите, пожалуйста, как я могу заставить мои скрипты работать, не меняя линию?
Спасибо за ответ SimonV. Когда я пытаюсь выполнить эту команду, я получаю «DBI :: DatabaseError: ORA-00922: недостающая или недопустимая опция» –
Попробуйте с этим синтаксисом: ALTER SESSION SET CURRENT_SCHEMA = SCHEMA_NAME – SimonV
Сладкий, похоже, что это трюк. Можете ли вы изменить свой главный ответ, чтобы я мог отметить его как ответ? –