在几乎任何普通的编程语言,可以利用类似于投投整数/短路/字节到一个char轻松地这个如何将NUMBER值赋给Oracle中的单个CHAR?
char alpha = (char)123;
我试图做到这一点在Oracle数据库中。我有CHAR类型的列(1 BYTE),我希望能够存储NUMBER值(其中的值不会超过30)。 CAST功能不会让我这样做。
rank := 10;
CAST(rank as CHAR(1))
其中秩是一个数字的变量。我得到一个错误:
Value from cast operand is larger than cast target size.
这是如何在甲骨文的PL/SQL做了什么?
您想将一个两位数字转换为一个字符的CHAR。该错误告诉你你需要知道的一切。 – Ollie 2012-02-24 14:54:40
一个字符是1个字节,十进制数10可以用一个字节(00001010)表示。我正在使用'cast'这个词的定义,我作为一个程序员所使用的术语可能与SQL的定义不同。 – 2012-02-24 14:59:06
“Oracle存储基数为100格式的数字,每个字节可以存储2位数字,总是为指数保留一个字节”(来自http://www.dbasupport.com/forums/showthread.php?t=17375) 。你将需要一个更大的专栏。 – Ollie 2012-02-24 15:07:39