Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在Oracle/SqlServer/PgSql中的表名开头使用@_Sql Server_Oracle_Postgresql_Special Characters - Fatal编程技术网

Sql server 在Oracle/SqlServer/PgSql中的表名开头使用@

Sql server 在Oracle/SqlServer/PgSql中的表名开头使用@,sql-server,oracle,postgresql,special-characters,Sql Server,Oracle,Postgresql,Special Characters,我试图了解使用以@符号开头的表名是否有缺点 我们需要一个可识别的模式来将这些表与同一模式中的其他表区分开来 我们目前与以下各方合作: -Oracle 10g及以上版本 -SqlServer 2008 R2及以上版本 -博士后9.1及以上 我尝试了所有这些方法,表的创建成功了,但我找不到好的文档来确定这是否确实是允许的。@是(标准)SQL中标识符的非法字符 手册中记录了不需要双引号的有效(合法)标识符的规则: 基本上引用了SQL标准: SQL标识符和关键字必须以字母(a-z,但也包括带有变音符号和

我试图了解使用以
@
符号开头的表名是否有缺点

我们需要一个可识别的模式来将这些表与同一模式中的其他表区分开来

我们目前与以下各方合作:
-Oracle 10g及以上版本
-SqlServer 2008 R2及以上版本
-博士后9.1及以上


我尝试了所有这些方法,表的创建成功了,但我找不到好的文档来确定这是否确实是允许的。

@
是(标准)SQL中标识符的非法字符

手册中记录了不需要双引号的有效(合法)标识符的规则:

基本上引用了SQL标准:

SQL标识符和关键字必须以字母(a-z,但也包括带有变音符号和非拉丁字母的字母)或下划线(389;)开头。标识符或关键字中的后续字符可以是字母、下划线、数字(0-9)或美元符号($)

该报告基本上是这样说的:

非引号标识符只能包含数据库字符集中的字母数字字符以及下划线(35;)、美元符号($)和英镑符号(#)

请注意,Oracle在数据库链接方面有一个例外:

数据库链接还可以包含句点(.)和“at”符号(@)。Oracle强烈建议您不要在非引号标识符中使用$和#


如果使用带引号的标识符,则可以在标识符中包含
@
。但Oracle手册也指出:Oracle不建议对数据库对象名称使用带引号的标识符

@
是(标准)SQL中标识符的非法字符

手册中记录了不需要双引号的有效(合法)标识符的规则:

基本上引用了SQL标准:

SQL标识符和关键字必须以字母(a-z,但也包括带有变音符号和非拉丁字母的字母)或下划线(389;)开头。标识符或关键字中的后续字符可以是字母、下划线、数字(0-9)或美元符号($)

该报告基本上是这样说的:

非引号标识符只能包含数据库字符集中的字母数字字符以及下划线(35;)、美元符号($)和英镑符号(#)

请注意,Oracle在数据库链接方面有一个例外:

数据库链接还可以包含句点(.)和“at”符号(@)。Oracle强烈建议您不要在非引号标识符中使用$和#

如果使用带引号的标识符,则可以在标识符中包含
@
。但Oracle手册也指出:Oracle不建议对数据库对象名称使用带引号的标识符

在Oracle中的表名开头使用@

我会坚持用甲骨文来回答

好吧,甲骨文不会允许你这么做的

即使这是允许的。实际上,一个可能出现问题的地方是
SQL*Plus
。如果在表名的开头有“at”(@)符号,那么执行脚本将是一场灾难

我所知道的唯一例外是,这里引用了Oracle文档:

数据库链接还可以包含句点(.)和“at”符号(@)。Oracle强烈建议您不要在非引号标识符中使用$和#

在Oracle中的表名开头使用@

我会坚持用甲骨文来回答

好吧,甲骨文不会允许你这么做的

即使这是允许的。实际上,一个可能出现问题的地方是
SQL*Plus
。如果在表名的开头有“at”(@)符号,那么执行脚本将是一场灾难

我所知道的唯一例外是,这里引用了Oracle文档:

数据库链接还可以包含句点(.)和“at”符号(@)。Oracle强烈建议您不要在非引号标识符中使用$和#


您需要使用一个公共字符串(如acctg或payroll)为组启动每个名称,并通过“every”数据库中的信息_schema.table视图搜索名称。要销售以acctg开头的所有表的列表,您必须执行以下操作:


选择*from information_schema.tables(name,5)=“acctg”应适用于您列出的所有产品。

您需要使用一个公共字符串(如acctg或payroll)启动组的每个名称,并通过信息_schema.table视图搜索名称,该视图应位于“every”数据库中。要销售以acctg开头的所有表的列表,您必须执行以下操作:


选择*from information_schema.tables(name,5)=“acctg”应该适用于您列出的所有产品。

所有这些环境中对象的命名要求都有详细的文档记录。不要违反命名要求。@SeanLange不,临时表以
#
@DavidAldridge开头,正如我在编辑中所写,我找不到好的文档,尤其是Oracle和Pg。实际上,SQL Server
@
中以@开头的表变量在SQL标识符中是非法的。所有这些环境中对象的命名要求都有很好的文档记录。不要违反命名要求。@SeanLange不,临时表以
#
@DavidAldridge开头,正如我在编辑中所写,我找不到好的文档,尤其是Oracle和Pg。实际上,SQL Server
@
中以@开头的表变量在SQL标识符中是非法的。我对不带引号的标识符没有特别的问题,因为我们的抽象层总是添加双引号。无论如何,使用这些特殊字符似乎有点冒险(假设我不想使用
)<代码>“FooBar”是