Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Ошибка в INSERT при наличие символа &  [new]
sibircev
Member

Откуда:
Сообщений: 33
Здравствуйте!
Есть следующая проблема, пытаюсь выполнить обычный INSERT, но в текстовом поле вставляемого значения содержится символ &. Его менять нельзя. Подскажите как выполнить такой запрос.

Пример:
INSERT INTO TCLIENT (BRANCH, IDCLIENT, Title, FIO) VALUES (1, 24880, NULL, '*MERK & STEPHAN SIEGMAR*');
20 фев 04, 11:26    [544952]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в INSERT при наличие символа &  [new]
John.D
Member

Откуда: Северск
Сообщений: 991
>пытаюсь выполнить обычный INSERT
ля, в чём? Какой прогой? Если в SQL+ то
Set define off
20 фев 04, 11:36    [544993]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в INSERT при наличие символа &  [new]
sibircev
Member

Откуда:
Сообщений: 33
Спасибо! Помогло.
20 фев 04, 11:47    [545037]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в INSERT при наличие символа &  [new]
sibircev
Member

Откуда:
Сообщений: 33
Сейчас появилась другая проблема, ругается, что не объявлена переменная, если где то в значение стоит :
SET DEFINE OFF - не помогает
20 фев 04, 11:55    [545062]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в INSERT при наличие символа &  [new]
Teo
Member

Откуда: Москва
Сообщений: 744
Часом не PL/SQL Developer ползуете?
20 фев 04, 12:05    [545090]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в INSERT при наличие символа &  [new]
softy
Member

Откуда: from Russia
Сообщений: 5911
1) Можно вместо знака & использовать другой, который у тебя точно не используется


SQL> set define '`'
SQL> select `a from dual;
Enter value for a: sysdate
old 1: select `a from dual
new 1: select sysdate from dual

SYSDATE
---------

20-FEB-04



2) Заменять & на chr(38) и использовать конкатенацию
20 фев 04, 12:09    [545101]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в INSERT при наличие символа &  [new]
John.D
Member

Откуда: Северск
Сообщений: 991
У меня, правда, есть подозрение, что после выполнения инсерта Вы не включили подстановку (SET define on).

Если же есть конструкции типа:
INSERT INTO TCLIENT (BRANCH, IDCLIENT, Title, FIO)
VALUES (1, 24880, &title, '*MERK & STEPHAN SIEGMAR*');

Можно выбрать в качестве символа подстановки какой-либо другой, не используемый во вставляемых значениях.
Set define {;
Запрос тогда будет выглядеть так:
INSERT INTO TCLIENT (BRANCH, IDCLIENT, Title, FIO)
VALUES (1, 24880, {title, '*MERK & STEPHAN SIEGMAR*');
20 фев 04, 12:17    [545131]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в INSERT при наличие символа &  [new]
pavelB
Member

Откуда:
Сообщений: 1
лучше переписать как
SET ESCAPE ON
INSERT INTO TCLIENT (BRANCH, IDCLIENT, Title, FIO) VALUES (1, 24880, NULL, '*MERK \& STEPHAN SIEGMAR*');
25 фев 04, 14:03    [550390]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Ошибка в INSERT при наличие символа & - на этот раз в SELECT  [new]
select &
Guest
а как побороть если он, гадкий &, встречается в тексте, считываемом из сторонних источников, который нужно вставить? Используется ТОАД.
Кстати, при попытке выполнить SET DEFINES OFF Оракл 10.2 поведал, что ему такая опция сета не знакома...
21 июн 07, 14:32    [4299435]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в INSERT при наличие символа & - на этот раз в SELECT  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
select &
а как побороть если он, гадкий &, встречается в тексте, считываемом из сторонних источников, который нужно вставить? Используется ТОАД.
Кстати, при попытке выполнить SET DEFINES OFF Оракл 10.2 поведал, что ему такая опция сета не знакома...


Уже сказано выше, что эта команда работает в SQL*PLus
21 июн 07, 14:36    [4299458]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в INSERT при наличие символа & - на этот раз в SELECT  [new]
xymbo
Member

Откуда: Донской --> Москва
Сообщений: 2560
select &
а как побороть если он, гадкий &, встречается в тексте, считываемом из сторонних источников, который нужно вставить? Используется ТОАД.
Кстати, при попытке выполнить SET DEFINES OFF Оракл 10.2 поведал, что ему такая опция сета не знакома...

Так не DEFINES, а DEFINE.
21 июн 07, 14:38    [4299473]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в INSERT при наличие символа &  [new]
select &
Guest
прошу прощения, не написал. Конечно, я это делал в SQLPLUS.. читать умею...
SQL> set defines off
SP2-0158: Unbekannte SET Option "defines"
SQL> SET DEFINES OFF
SP2-0158: Unbekannte SET Option "DEFINES"
SQL> 
21 июн 07, 14:39    [4299481]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в INSERT при наличие символа &  [new]
select &
Guest
упсс. прошу прощения. читать умею, но плохо, похоже.

Ну а всё-таки, можно это побороть в тоаде? В SQLPLUS этож для сессии, так?
21 июн 07, 14:42    [4299514]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в INSERT при наличие символа &  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
В SQLPLUS этож для сессии, так?

К сессии на сервере это вообще не имеет отношения. Эта установка SQL*Plus, которая влияет только на него (как и все другие параметры, изменяемые командой SET)
21 июн 07, 14:46    [4299542]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в INSERT при наличие символа &  [new]
select &
Guest
Ок. Спасибо.
21 июн 07, 14:49    [4299562]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в INSERT при наличие символа &  [new]
Dmitry E. Loginov
Member

Откуда: Москва
Сообщений: 108
select &
Ну а всё-таки, можно это побороть в тоаде?

В контекстном меню SQL Window снять галку Scan for substitution vars
21 июн 07, 15:05    [4299662]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в INSERT при наличие символа &  [new]
select &
Guest
В контекстном меню SQL Window снять галку Scan for substitution vars

спасибо всем. Исчерпывающе.
21 июн 07, 15:18    [4299748]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить