Подтвердить что ты не робот

Как ввести специальные символы, такие как "&" в базе данных оракула?

Я хочу вставить специальный символ & в мой оператор insert. Моя вставка:

INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 & Oracle_14');

Если я попытаюсь запустить этот запрос, я получаю всплывающее окно, и он просит ввести значение для Oracle_14.

Как я могу ввести специальные символы, такие как & в инструкции insert для oracle db?

4b9b3361

Ответ 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}'