2012-02-29 38 views
2

我正在嘗試使用LPAD和RPAD命令編寫一個將生成「Oracle $$$ Internet $$$ Academy」的語句。這是我迄今爲止,但我得到一個錯誤的右括號錯誤。Oracle作業 - LPAD/RPAD錯誤?

SELECT LPAD(RPAD('Oracle', 10,'$$$')RPAD('Internet',24,'$$$')) 
FROM dual; 
+0

其實你已經失去了連接'||'。解決之後 - 你會遇到一個問題,傳遞給外層'LPAD'的參數不足。你也許不想'$$$',但是希望'$' - 填充函數被髮明來爲你計算必要的數量字符。所以可能你需要再次閱讀文檔。 – zerkms 2012-02-29 23:20:48

回答

4

你需要同時使用RPAD和LPAD?如果沒有,你只是錯過了||的連接字符

SELECT RPAD('Oracle', 9,'$$$')||RPAD('Internet',11,'$$$')||'Academy' FROM dual 

編輯:更妙的是:

SELECT RPAD('Oracle', 9,'$$$')||'Internet'||LPAD('Academy',10,'$$$') FROM dual 
+0

要求$$$的說明。感謝這工作。當然是 – 2012-02-29 23:32:21

+0

!很高興我能幫上忙。 – northpole 2012-02-29 23:33:01

2

如果你想同時使用LPADRPAD你可以做這樣的事情。

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 

我使用字符串「甲骨文」和「學院」的長度,而不是硬編碼值。而且我只指定一次美元符號 - LPADRPAD會自動將其附加到適當的次數。