Sql Oracle RPAD()使用空字符串填充
我正在尝试从SQL*Plus中创建转储文件。要求是为填充创建null,但当我使用null时,甚至数据值也会被null化,请参见下文 SQL> select RPAD(1234,10,' ') from dual ; RPAD(1234, ---------- 1234 SQL> select RPAD(1234,10,'') from dual; R - 我见过其他脚本,它们似乎使用null填充 请帮助,谢谢此代码:Sql Oracle RPAD()使用空字符串填充,sql,oracle,Sql,Oracle,我正在尝试从SQL*Plus中创建转储文件。要求是为填充创建null,但当我使用null时,甚至数据值也会被null化,请参见下文 SQL> select RPAD(1234,10,' ') from dual ; RPAD(1234, ---------- 1234 SQL> select RPAD(1234,10,'') from dual; R - 我见过其他脚本,它们似乎使用null填充 请帮助,谢谢此代码: RPAD(1234,10,'') 将1234连接到,这在O
RPAD(1234,10,'')
将1234连接到,这在Oracle中相当于NULL,因此会导致NULL任何连接到NULL的内容都会产生NULL
Oracle中没有空值
希望有帮助。RPAD接受字符或字符串作为其第三个参数,用于将初始字符串填充到特定长度 RPAD可用于返回一个字符串,根据第2个参数,该字符串的长度保证为n个字符
由于NULL不表示任何特定的字符或字符串,且长度为零,因此不能将其用于填充-在本例中,RPAD显然返回NULL,这是有意义的,因为RPAD唯一的另一个选项是引发异常。您到底想做什么?空字符串和空字符串是不同的。与他们中的任何一个打交道都没有意义。通常,单个空间用于填充。您是否可能误解为“”?@PM77-1在oracle null和空字符串中是相同的:请尝试从dual中选择*,其中为null;是的。“RPADexpr1,n[,expr2]…expr1不能为null。”@javaplesse42,是的-但OP谈论的是expr2,它可以为null,但如果那样使用,它不是很有用。