首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Oracle变量替换-同义词

Oracle变量替换-同义词
EN

Stack Overflow用户
提问于 2010-08-27 17:47:16
回答 2查看 845关注 0票数 0

我想在oracle中替换一个变量。

该变量通过SQLPlus传入,并使用&1进行引用

在我的场景中&1是模式名-这里是SQL。

代码语言:javascript
复制
CREATE SYNONYM ACCOUNT FOR &1.ACCOUNT;

假设&1等于ABC,创建的synonym是为ABCAccount而不是ABC.Account创建的。由于某种原因,句号被删除了。

你知道为什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-27 19:03:50

句点被视为变量名的终止。它通常是可选的(例如,当名称后面有空格时),但有时您必须使用它来区分变量和下一段文本。假设您实际上想要以字符串ABCACCOUNT结束;如果您有&1ACCOUNT,它将提示输入一个名为1ACCOUNT的变量,这并不是您想要的。句点告诉它变量名的结束位置。

在这种情况下,您需要有一个句点来显示变量的结尾,然后使用另一个句点将其视为模式:

代码语言:javascript
复制
CREATE SYNONYM ACCOUNT FOR &1..ACCOUNT;
票数 8
EN

Stack Overflow用户

发布于 2010-08-27 18:17:54

代码语言:javascript
复制
DECLARE
  schema_name VARCHAR2(30) := '&1';
BEGIN
    EXECUTE IMMEDIATE 'CREATE SYNONYM ACCOUNT FOR ' || schema_name || '.ACCOUNT';
END;
/
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3582998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档