如何在plsql中为十六进制值指定char变量

时间:2018-02-01 13:44:36

标签: c plsql

下面是来自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”继续。

1 个答案:

答案 0 :(得分:0)

正如评论中已经提到的,charvarcharvarchar2nvarchar2等不是数组。此外,通常不需要在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;