不使用架构名称访问表

时间:2018-09-25 10:24:49

标签: db2

我是DB2的新手。

如果不使用架构名称,则无法从表中获取数据。如果我将模式名称和表名称一起使用,则可以获取数据。

示例:

SELECT * FROM TABLE_NAME;

这给了我错误,

SELECT  FROM SCHEMA_NAME.TABLE_NAME;

正在获取结果。

我必须设置为不必总是使用架构名称吗?

3 个答案:

答案 0 :(得分:0)

尝试使用SET SCHEMA设置会话中要使用的默认架构:

SET SCHEMA SCHEMA_NAME;
SELECT * FROM TABLE_NAME;

答案 1 :(得分:0)

默认情况下,您的用户名用作不合格对象名称的架构名称。您可以使用来查看当前架构VALUES CURRENT SCHEMA。您可以使用SET SCHEMA new_schema_name或通过例如更改当前会话的当前模式。 JDBC连接参数。大多数查询工具还可以指定/更改当前架构。

参见SET SCHEMA https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.1.0/com.ibm.db2.luw.sql.ref.doc/doc/r0001016.html的手册页

这里有https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.1.0/com.ibm.db2.luw.sql.ref.doc/doc/r0000720.html#r0000720__unq-alias

例如

  

默认模式隐式地限定了不合格的别名,索引,包,序列,表,触发器和视图名称。

(以上所有假定您使用的是Db2 LUW)

答案 2 :(得分:0)

  • 使用 DBeaver 时 - 右键单击连接 > 连接设置 > 初始化,然后选择您的默认数据库默认架构

DB2 configure defaults


  • 之后,打开您的 SQL 脚本并选择 Active DB

enter image description here