sql - Oracle SQL 语句动态模式变量

标签 sql oracle ddl

我有几百行代码来创建表,但模式名称在所有 DDL 语句中都像 SCHEMA_NAME1.TABLE_NAME 一样被硬编码。我怎样才能将它作为一个变量并在所有地方使用,以便我们可以轻松地在一个地方更改 SCHEMA_NAME 要求的多个位置。请给出您的想法。

create table SCHEMA_NAME1.TABLE_NAME1(....);
create table SCHEMA_NAME1.TABLE_NAME2(....);
create table SCHEMA_NAME1.TABLE_NAME3(....);

我想要这样的东西

var SCHEMA_NAME_VALUE ;
create table SCHEMA_NAME_VALUE.TABLE_NAME1(....);
create table SCHEMA_NAME_VALUE.TABLE_NAME2(....);
create table SCHEMA_NAME_VALUE.TABLE_NAME3(....);

最佳答案

当使用 SQL*Plus 或 SQLcl 运行您的对象创建脚本时,使用替换 (&) 变量代替硬编码模式名称,前导 ACCEPT命令和尾随 UNDEFINE命令。当变量没有尾随空格时,以句点 (.) 终止变量名。

ACCEPT SCHEMA_NAME_VALUE
create table &SCHEMA_NAME_VALUE..TABLE_NAME1(....);
create table &SCHEMA_NAME_VALUE..TABLE_NAME2(....);
create table &SCHEMA_NAME_VALUE..TABLE_NAME3(....);
UNDEFINE SCHEMA_NAME_VALUE

关于sql - Oracle SQL 语句动态模式变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34513425/

相关文章:

sql - 为什么此查询不会发生分区消除?

mysql - 使用 100 万行以上的表更新查询性能

procedure - 如何在 Teradata 中提取存储过程主体

oracle - Oracle表审计添加日期和修改日期

甲骨文 12c : Insert into Table with Identity Column

sql - 如何在大数据库中获得第一个结果(带排序)

mysql - 与 MySQL 中尾随空格的比较

python - 如何更改 sqlalchemy 的 create_engine 中的编码选项?

sql - 删除oracle结果列之间的差距

java - 解析函数不起作用