下面是来自C的一段代码,这里他们将十六进制值赋给char变量sKaigyoCode
char sKaigyoCode[512];
sKaigyoCode[0] = 0x0d;
sKaigyoCode[1] = 0x0a;
我试图在PLSQL中做同样的事情
sKaigyoCode CHAR(512);
sKaigyoCode[0] = 0x0d;
sKaigyoCode[1] = 0x0a;
显示编译时错误
错误(46,18):PLS-00103:遇到以下其中一项时遇到符号“[”:::。 (@%;
错误(46,23):PLS-00103:遇到以下其中一项时遇到符号“X0D”:*& = - +; < /> at in mod mod not rem<>或!=或〜=> =< =<>和/或喜欢像||之间的喜欢4喜欢multiset member submultiset用符号“*”代替“X0D”继续。
答案 0 :(得分:0)
正如评论中已经提到的,char
,varchar
,varchar2
,nvarchar2
等不是数组。此外,通常不需要在PL / SQL中使用十六进制值。但是如果你需要将特殊字符放入字符串变量中,你可以这样做:
declare
sKaigyoCode CHAR(512);
begin
sKaigyoCode := chr(10) || chr(13);
end;
反向操作 - 返回符号代码:
declare
a number;
begin
a := ascii(substr('Hello, world!', 1, 1));
end;