我正在尝试编写一个声明,使用LPAD和RPAD命令生成“Oracle $$$ Internet $$$ Academy”。这是我到目前为止,但我得到一个错误的右括号错误。
SELECT LPAD(RPAD('Oracle', 10,'$$$')RPAD('Internet',24,'$$$'))
FROM dual;
答案 0 :(得分:4)
你需要同时使用RPAD和LPAD吗?如果没有,您只是缺少||
的串联字符SELECT RPAD('Oracle', 9,'$$$')||RPAD('Internet',11,'$$$')||'Academy' FROM dual
编辑:更好:
SELECT RPAD('Oracle', 9,'$$$')||'Internet'||LPAD('Academy',10,'$$$') FROM dual
答案 1 :(得分:2)
如果您想同时使用LPAD
和RPAD
,您可以执行此类操作。
SQL> ed
Wrote file afiedt.buf
1 SELECT RPAD('Oracle', length('Oracle')+3,'$')||
2 'Internet' ||
3 LPAD('Academy', length('Academy')+3, '$' )
4* FROM dual
SQL> /
RPAD('ORACLE',LENGTH('ORACL
---------------------------
Oracle$$$Internet$$$Academy
我使用字符串'Oracle'和'Academy'的长度而不是硬编码值。而且我只指定一次美元符号 - LPAD
和RPAD
会自动将其添加到适当的次数。