Как вставить строку, которая содержит “&\”

Я всегда нахожу метод чтения что-то вроде прогулки по темному переулку. Вы опускаетесь немного и останавливаетесь, но если вы не считаете свои шаги, вы не знаете, насколько далеко вы находитесь. Seek дает решение путем повторного позиционирования, другой вариант - Tell, который возвращает позицию вдоль файла. Может быть, файл Python api может объединить чтение и поиск в read_from (position, bytes), чтобы упростить его - до этого вы должны прочитать эту страницу .

39
задан Mihai Limbășan 4 January 2009 в 07:55
поделиться

10 ответов

Я продолжаю забывать это и возвращаться к нему снова! Я думаю, что лучший ответ является комбинацией ответов, обеспеченных до сих пор.

Во-первых, & переменный префикс в sqlplus/sqldeveloper, следовательно проблема - когда это появится, это, как ожидают, будет частью имени переменной.

НАБОР ОПРЕДЕЛЯЕТ ПРОЧЬ, остановит sqlplus, интерпретирующий & этот путь.

, Но что, если необходимо использовать sqlplus переменные и литерал & символы?

  • Вы должны УСТАНОВИТЬ, ОПРЕДЕЛЯЮТ НА заставить переменные работать
  • И УСТАНОВИТЬ ESCAPE НА выйти из использования &.

, например,

set define on
set escape on

define myvar=/forth

select 'back\\ \& &myvar' as swing from dual;

Производит:

old   1: select 'back\\ \& &myvar' from dual
new   1: select 'back\ & /forth' from dual

SWING
--------------
back\ & /forth

, Если Вы хотите использовать различный символ ESC:

set define on
set escape '#'

define myvar=/forth

select 'back\ #& &myvar' as swing from dual;

при установке определенного символа ESC можно видеть 'SP2-0272: символ ESC не может быть алфавитно-цифровым или пробел'. Это, вероятно, означает, что Вам уже определили символ ESC, и вещи становятся ужасно самосправочными. Очевидный способ предотвращения этой проблемы должен выделить Escape сначала:

set escape off
set escape '#'
60
ответ дан tardate 12 November 2019 в 13:00
поделиться

Прекратите использовать SQL/плюс, я настоятельно рекомендую Разработчик пуазейли / Разработчик SQL , это намного больше, чем инструмент SQL.

p.s. Некоторые люди предпочитают ЖАБА .

0
ответ дан Osama Al-Maadeed 12 November 2019 в 13:00
поделиться

Если Вы используете sql плюс тогда, я думаю, что необходимо выпустить команду

SET SCAN OFF
0
ответ дан stjohnroe 12 November 2019 в 13:00
поделиться

Я нашел, что использование любой из следующих опций работает:

SET DEF OFF

или

SET SCAN OFF

я не знаю достаточно о базах данных, чтобы знать, являетесь ли Вы лучше или "более правильными", чем другой. Кроме того, если существует что-то лучше, чем любой из них, сообщите мне.

2
ответ дан Andrew Hampton 12 November 2019 в 13:00
поделиться
SET ESCAPE ON;
INSERT VALUES("J\&J Construction") INTO custnames;

(Непротестированный, не имейте поля Oracle под рукой, и это было некоторое время)

0
ответ дан Roel 12 November 2019 в 13:00
поделиться

ОТПРАВЬТЕСЬ СКАНИРОВАНИЕ устаревшее http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a90842/apc.htm

4
ответ дан hamishmcn 12 November 2019 в 13:00
поделиться

Всегда существует chr () функция, которая преобразовывает код ASCII для строкового представления.

т.е. что-то как: табличные значения INSERT INTO (CONCAT ('J', CHR (38), 'J'))

5
ответ дан Hans 12 November 2019 в 13:00
поделиться

Если Вы делаете его от использования SQLPLUS

SET DEFINE OFF  

для остановки его шагающий & как особый случай

16
ответ дан hamishmcn 12 November 2019 в 13:00
поделиться

Правильный синтаксис

set def off;
insert into tablename values( 'J&J');
5
ответ дан Greg Ogle 12 November 2019 в 13:00
поделиться

В программе всегда используйте параметризированный запрос. Это избегает Атак с использованием кода на SQL, а также любых других символов, которые являются особенными для синтаксического анализатора SQL.

4
ответ дан Mike Dimmick 12 November 2019 в 13:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: