我正在尝试从 SQL*Plus 中创建转储文件。要求是为填充创建 null '' 但是当我使用 NULL 时,即使数据值也会被无效,请参见下文。
SQL> select RPAD(1234,10,' ') from dual ; RPAD(1234, ---------- 1234 SQL> select RPAD(1234,10,'') from dual; R -
我见过其他脚本,它们似乎使用 null('') 进行填充
请帮忙谢谢
RPAD 接受一个字符或字符串作为其第三个参数,用于将初始字符串“填充”到特定长度。
RPAD 可用于返回一个“保证”长度为n 个字符的字符串(根据第二个参数)。
由于 NULL 不代表任何特定的字符或字符串并且长度为零,因此它不能用于填充 - RPAD 在这种情况下显然返回 NULL,这是有道理的,因为唯一的其他选项是 RPAD 引发异常。
这段代码:
RPAD(1234,10,'')
将 1234 连接到 '',在 Oracle 中相当于 NULL,因此它会导致 NULL(任何连接到 NULL 的东西都会产生 NULL)
Oracle 中没有 NULL('')。
希望有帮助。