Default Schema in Oracle Connection URL(Oracle 连接 URL 中的默认架构)
问题描述
我想在 Oracle Connection URL
jdbc:oracle:thin:@<server>:<port1521>:<sid>
我的示例 SQL 语句:
My sample SQL statement:
select monkey_name from animals.monkey
我需要查询没有模式前缀animals.的数据库,即当我运行这个语句时
I need to query database without schema prefix animals. i.e. when I run this statement
select monkey_name from monkey
默认使用animals模式.
我需要在上面的连接URL中指定什么才能达到这种效果?
What do I need to specify in connection URL above get such effect?
谢谢.
推荐答案
您不能在连接 URL 中放置任何内容.
You can't put anything in the connection URL.
在 Oracle 中,每个用户都有自己的架构(即使不包含任何对象),这是他们的默认架构.登录/连接后,他们可以使用
In Oracle each user has their own schema (even if doesn't contain any objects) and that is their default schema. Once logged in/connected, they can change their default schema with an
ALTER SESSION SET CURRENT_SCHEMA=animals
所以你需要在连接后做额外的声明.可以在用户和/或数据库上设置一个登录触发器,在他们登录时运行该触发器.我个人更喜欢在应用程序连接时使用显式语句.
So you'd need to do the extra statement after connecting. It is possible to have a logon trigger on the user and/or database that will run this when they log in. I'd personally prefer an explicit statement when an application connects.
这篇关于Oracle 连接 URL 中的默认架构的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Oracle 连接 URL 中的默认架构
基础教程推荐
- CHECKSUM 和 CHECKSUM_AGG:算法是什么? 2021-01-01
- 使用 VBS 和注册表来确定安装了哪个版本和 32 位 2021-01-01
- MySQL 5.7参照时间戳生成日期列 2022-01-01
- 带有WHERE子句的LAG()函数 2022-01-01
- 如何在 CakePHP 3 中实现 INSERT ON DUPLICATE KEY UPDATE aka upsert? 2021-01-01
- MySQL根据从其他列分组的值,对两列之间的值进行求和 2022-01-01
- while 在触发器内循环以遍历 sql 中表的所有列 2022-01-01
- 从字符串 TSQL 中获取数字 2021-01-01
- ORA-01830:日期格式图片在转换整个输入字符串之前结束/选择日期查询的总和 2021-01-01
- 带更新的 sqlite CTE 2022-01-01
