目前我正在使用DataStper使JRuby on Rails应用程序访问Oracle数据库。我想知道是否有一个配置/例程来访问来自不同用户/模式的表,如:
SELECT * FROM "SCHEMAXY"."TABLEXY";
我已经通过指定模式和表名来实现了这项工作,但我怀疑这是一个很好的解决方案。
class Tablexy
include DataMapper::Resource
storage_names[:default] = "SCHEMAXY.TABLEXY"
end
劈(ISH)
# Replace a dot in the name by a quoted one
# so "NAMESPACE.TABLE" gets "NAMESPACE"."TABLE"
module DataMapper
module Adapters
class OracleAdapter
def quote_name(name)
super.gsub('.', '"."')
end
end
end
end
我希望在DataMapper中有一个集成的解决方案。
答案 0 :(得分:1)
如果您可以执行SQL ALTER SESSION
命令,则以下内容将起作用&允许您在SCHEMAY
中使用不合格的表名:
ALTER SESSION SET CURRENT_SCHEMA=SCHEMAXY;
如果无法做到这一点,您可以创建SYNONYM
:
CREATE SYNONYM TABLEY FOR SCHEMAY.TABLEY;