我有几百行代码来创建表,但模式名称在所有 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/