как изменить разделитель в sqlplus в oracle 11g
Я хочу изменить разделитель:
Может кто-нибудь помочь мне изменить разделитель в sqlplus в Oracle 11g
CREATE OR REPLACE TRIGGER test_trigger
BEFORE INSERT ON test
REFERENCING NEW AS NEW FOR EACH ROW
BEGIN
SELECT test_sequence.nextval INTO :NEW.ID FROM dual;
END;
/
Это триггер, который я хочу создать. но после утверждения Select он останавливается из-за ; Есть. вот почему я хочу изменить разделитель. Я надеюсь, что теперь все это понимают..4 ответа:
Нет ничего плохого в синтаксисе вашего триггера. Я могу запустить его в моей (vanilla) среде SQL * Plus:
SQL> CREATE OR REPLACE TRIGGER test_trigger 2 BEFORE INSERT ON test 3 REFERENCING NEW AS NEW FOR EACH ROW 4 BEGIN 5 SELECT test_sequence.nextval INTO :NEW.ID FROM dual; 6 END; 7 / Trigger created. SQL>
И вот! срабатывает триггер:
Все, что я могу думать, это то, что у вас есть несколько пустых строк в коде, который вы набираете. В этом случае вы можете переопределить поведение по умолчанию с помощью следующей команды SQL * Plus:SQL> insert into test (col1) values ('Simples!') 2 / 1 row created. SQL> select * from test 2 / ID COL1 ---------- ------------ 1 Simples! SQL>
SQL> set sqlblanklines on
Это то, что вы ищете
select q'#Oracle's quote operator#' from dual; Q'#ORACLE'SQUOTEOPERATO ----------------------- Oracle's quote operator
Править 1:
CMDS[EP] {;|c|OFF|ON} Change or enable command separator - default is a semicolon (;)
Если вы используете SQLPlus, а не какой-то другой инструмент, я не уверен, в чем корень проблемы, но вот ответ на ваш обходной вопрос:
Чтобы изменить разделитель команд от значения по умолчанию;
, ИспользуйтеSQL> set cmdsep / SQL> show cmdsep cmdsep "/" (hex 2f)
Чтобы восстановить значение по умолчанию после создания триггера:
SQL> set cmds off SQL> show cmds cmdsep OFF