Oracle Homework - LPAD / RPAD Ошибка? - PullRequest
2 голосов
/ 01 марта 2012

Я пытаюсь написать оператор, который будет создавать «Oracle $$$ Internet $$$ Academy» с использованием команд LPAD и RPAD.это то, что у меня есть, но я получаю пропущенную ошибку в правой скобке.

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

Ответы [ 2 ]

4 голосов
/ 01 марта 2012

Вам нужно использовать как RPAD, так и LPAD? Если нет, то вам просто не хватает символов конкатенации ||

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

РЕДАКТИРОВАТЬ: еще лучше:

SELECT RPAD('Oracle', 9,'$$$')||'Internet'||LPAD('Academy',10,'$$$') FROM dual
2 голосов
/ 01 марта 2012

Если вы хотите использовать и 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 автоматически позаботятся о добавлении его нужное количество раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...