Sql Oracle存储过程名称

Sql Oracle存储过程名称,sql,oracle,stored-procedures,Sql,Oracle,Stored Procedures,我试图在Oracle中创建一个在名称中使用分号的存储过程。我使用SQLPlus命令行创建存储过程,它抱怨分号是无效字符 是否有转义字符允许存储过程包含分号 如果你真的必须 create or replace procedure "!@#$%^&*();:<>?,./\|{}[]"( "@#$%;<>^^@@&" number ) is begin dbms_output.put_line( 'Output is ' || "@#$%;<>

我试图在Oracle中创建一个在名称中使用分号的存储过程。我使用SQLPlus命令行创建存储过程,它抱怨分号是无效字符

是否有转义字符允许存储过程包含分号


如果你真的必须

create or replace procedure "!@#$%^&*();:<>?,./\|{}[]"( "@#$%;<>^^@@&" number )
is 
begin
  dbms_output.put_line( 'Output is ' || "@#$%;<>^^@@&" );
end;
/

exec "!@#$%^&*();:<>?,./\|{}[]"( 2 );

run -------
Output is 2
创建或替换过程“!@$%^&*();:?,./\\\\\{}[]”(“@$%^^@@&”编号)
是
开始
dbms_output.put_行('output is'| |“@#$%;^^@&”);
结束;
/
执行官“!@$%^&*():?,./\{}[”(2);
跑-------
输出为2

提示:用引号将过程名称括起来。

这到底有什么好处?除了制造混乱和混乱,这不是我的要求。你在PHB工作吗?听到这个消息我很难过,但我会像着火一样从那个地方跑出来。你应该知道命名,看看oracle中常用的一些命名约定,在你的命名约定中,它可以用双引号进行编译。+1用于回答问题,但是。。。。每当我看到像!@$%这样的字符串时。。。我认为代码是在咒骂。如果我看到这些字符在标识符中被使用,我就会这么做,我是那种发誓的人!对不起,我不是以英语为母语的人,我也不太清楚“发誓”是什么意思,我希望我没有冒犯你,如果是的话,那么我很抱歉,我不是故意粗鲁。哦,不@kordirko,我只是在开玩笑——你的回答没有冒犯性,我只是很容易被逗乐,而且有一种古怪的幽默感:)