Как ввести специальные символы, такие как "&" в базе данных оракула?
Я хочу вставить специальный символ &
в мой оператор insert. Моя вставка:
INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 & Oracle_14');
Если я попытаюсь запустить этот запрос, я получаю всплывающее окно, и он просит ввести значение для Oracle_14
.
Как я могу ввести специальные символы, такие как &
в инструкции insert для oracle db?
Ответы
Ответ 1
Если вы работаете в SQL * Plus или SQL Developer, вы хотите запустить
SQL> set define off;
перед выполнением оператора SQL. Это превращает проверку на переменные замещения.
Директивы SET, подобные этим, являются инструкциями для клиентского инструмента (SQL * Plus или SQL Developer). У них есть область сеанса, поэтому вам нужно будет выдать директиву каждый раз, когда вы подключаетесь (вы можете поместить директиву в свою клиентскую машину glogin.sql, если хотите изменить значение по умолчанию, чтобы DEFINE установил значение OFF). Нет никакого риска, что вы повлияли бы на любого другого пользователя или сеанса в базе данных.
Ответ 2
Попробуйте 'Java_22 '||'&'||' Oracle_14'
Ответ 3
Ответ Justin - это путь, но также как FYI вы можете использовать функцию chr() со значением ascii символа, который вы хотите вставить. Для этого примера это будет:
INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 '||chr(38)||' Oracle_14');
Ответ 4
Вставить значения, которые получили '&' в этом. Используйте следующий код.
Set define off;
Begin
INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 & Oracle_14');
End ;
И нажмите F5 от редакторов Oracle или Toad Editors.
Ответ 5
вы можете просто уйти и следовать за точкой. попробуйте следующее:
INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 &. Oracle_14');
Ответ 6
Мы также можем использовать другой способ
например, чтобы вставить значение со специальными символами "Java_22" и "Oracle_14" в db, мы можем использовать следующий формат.
'Java_22' || '&' || ' Oracle_14
Хотя он рассматривает как 3 разных токена, мы не имеем какой-либо опции, так как обработка escape-последовательности, предоставленная в документации о oracle, неверна.
Ответ 7
Если escape-символ должен быть добавлен в начале или в конце, например "JAVA"
, используйте:
INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', ''||chr(34)||'JAVA'||chr(34)||'');
Ответ 8
Для специального набора символов вам необходимо проверить графики UNICODE. После выбора вашего персонажа вы можете использовать инструкцию sql ниже,
SELECT COMPOSE('do' || UNISTR('\0304' || 'TTTT')) FROM dual;
-
д о ТТТТ
Ответ 9
Также вы можете использовать concat следующим образом: D
Insert into Table Value(CONCAT('JAVA ',CONCAT('& ', 'Oracle'));
Ответ 10
Есть 3 способа сделать это:
1) Просто установите SET DEFINE OFF; а затем выполните вставку stmt.
2) Просто объединяя зарезервированное слово в одинарных кавычках и конкатенируя его.
Например. Выберите "Java_22" || "& Амп;" || ':' || "Oracle_14" из двойного - (:) является необязательным.
3) Используя функцию CHR вместе с конкатенацией.
Например. Выберите "Java_22" || CHR (38) ||" Oracle_14 'от двойного
Надеюсь, что эта помощь!!!
Ответ 11
strAdd = strAdd.replace( "&", "'||' & '||'" );
Ответ 12
В моем случае мне нужно вставить строку с текстом "Пожалуйста, наберите * 001 для справки".
В этом случае специальный символ является звездочкой.
Используя прямую вставку с использованием sqlPlus, она не с ошибкой "SP2-0734: начало неизвестной команды..."
Я попытался убежать без успеха.
Чтобы достичь, я создал файл insert.sql в файловой системе с
insert into testtable (testtext) value ('Please dial *001 for help');
Затем из sqlPlus я выполнил
@insert.sql
И строка была вставлена.
Ответ 13
Вы можете использовать символ обратной косой черты для выхода из одного символа или символа
'Java_22\& Oracle_14
или скобки для вызова строки символов или символов
'{Java_22 и Oracle_14}'