带有空字符串的Oracle RPAD()填充

时间:2013-09-11 21:50:22

标签: sql oracle

我正在尝试从SQL * Plus中创建转储文件。要求是为填充创建null'',但是当我使用NULL时,即使数据值无效,请参阅下文。

SQL> select RPAD(1234,10,' ') from dual ;

RPAD(1234,
----------
1234

SQL> select RPAD(1234,10,'') from dual;

R
-

我见过其他脚本,他们似乎使用null('')来填充

请帮助谢谢

2 个答案:

答案 0 :(得分:4)

RPAD接受一个字符或字符串作为其第三个参数,用于将初始字符串“填充”到特定长度。

RPAD可用于返回一个“保证”长 n 个字符的字符串(根据第二个参数)。

由于NULL不表示任何特定字符或字符串且长度为零,因此不能用于填充 - RPAD显然在此实例中返回NULL,这是有道理的,因为RPAD引发异常的唯一其他选项。

答案 1 :(得分:-1)

此代码:

RPAD(1234,10,'')

将1234连接到'',在Oracle中相当于NULL,因此它会导致NULL(连接到NULL的任何内容都会产生NULL)

Oracle中没有NULL('')。

希望有所帮助。