Ответ 1
Как я решил, что он убегает и с другим &.
Например:
INSERT INTO Foo (Bar) VALUES ('Up && Away');
Хорошо работает. Спасибо за помощь
Я пытаюсь сделать простой оператор INSERT для базы данных Oracle. Одним из значений является поле VARCHAR2, а инструкция insert содержит амперсанд. Как мне это сделать? Я пробовал следующие методы:
Любые другие идеи?
Как я решил, что он убегает и с другим &.
Например:
INSERT INTO Foo (Bar) VALUES ('Up && Away');
Хорошо работает. Спасибо за помощь
Одна из особенностей PL/SQL Developer, для которой требуется время, чтобы ознакомиться с множеством различных типов окон.
Одним из них является окно COMMAND, которое в основном является эмулятором SQL * Plus. Мы можем запускать команды SQL * Plus, а также SQL, поэтому SET ESCAPE
, SET DEFINE
и действительно SET SCAN OFF
работают в этом окне.
В текущей версии PL/SQL Developer (11.0.x) есть кнопка для отключения/замены переменных замещения.
Вы пробовали что-то вроде этого?
INSERT INTO tablex VALUES ('Sid ' || '&' || ' Nancy');
Улучшая мой первый ответ, ваша проблема связана с PL/SQL Developer. Если вы выполните свой блок в окне командной строки PL/SQL Developer, вы также можете использовать стандартный SET DEFINE OFF, который работает так же, как и в SQL * Plus.
concat работал отлично для меня ниже, это то, что я сделал в своем выборе:
select FUND_NM
FROM PERFORMANCE
WHERE upper(FUND_DESC) in ('My L&' ||'L FUNDS')
Я использую chr(38)
, где мне нужен амперсанд в PL/SQL.
addr:= 'mysite.com/order.aspx?no=5678' || CHR(38) || 'id=947';
--above line gives you 'mysite.com/order.aspx?no=5678&id=947';
Это просто проблема с редактором SQL. Чтобы решить эту проблему, просто скомпилируйте процедуру с SET DEFINE OFF;, Выполнение, которое является PL (выполняется на сервере), не столкнется с этой проблемой.