Я всегда нахожу метод чтения что-то вроде прогулки по темному переулку. Вы опускаетесь немного и останавливаетесь, но если вы не считаете свои шаги, вы не знаете, насколько далеко вы находитесь. Seek дает решение путем повторного позиционирования, другой вариант - Tell, который возвращает позицию вдоль файла. Может быть, файл Python api может объединить чтение и поиск в read_from (position, bytes), чтобы упростить его - до этого вы должны прочитать эту страницу .
Я продолжаю забывать это и возвращаться к нему снова! Я думаю, что лучший ответ является комбинацией ответов, обеспеченных до сих пор.
Во-первых, & переменный префикс в sqlplus/sqldeveloper, следовательно проблема - когда это появится, это, как ожидают, будет частью имени переменной.
НАБОР ОПРЕДЕЛЯЕТ ПРОЧЬ, остановит sqlplus, интерпретирующий & этот путь.
, Но что, если необходимо использовать sqlplus переменные и литерал & символы?
, например,
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 '#'
Прекратите использовать SQL/плюс, я настоятельно рекомендую Разработчик пуазейли / Разработчик SQL , это намного больше, чем инструмент SQL.
p.s. Некоторые люди предпочитают ЖАБА .
Если Вы используете sql плюс тогда, я думаю, что необходимо выпустить команду
SET SCAN OFF
Я нашел, что использование любой из следующих опций работает:
SET DEF OFF
или
SET SCAN OFF
я не знаю достаточно о базах данных, чтобы знать, являетесь ли Вы лучше или "более правильными", чем другой. Кроме того, если существует что-то лучше, чем любой из них, сообщите мне.
SET ESCAPE ON;
INSERT VALUES("J\&J Construction") INTO custnames;
(Непротестированный, не имейте поля Oracle под рукой, и это было некоторое время)
ОТПРАВЬТЕСЬ СКАНИРОВАНИЕ устаревшее http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a90842/apc.htm
Всегда существует chr () функция, которая преобразовывает код ASCII для строкового представления.
т.е. что-то как: табличные значения INSERT INTO (CONCAT ('J', CHR (38), 'J'))
Если Вы делаете его от использования SQLPLUS
SET DEFINE OFF
для остановки его шагающий & как особый случай
Правильный синтаксис
set def off;
insert into tablename values( 'J&J');
В программе всегда используйте параметризированный запрос. Это избегает Атак с использованием кода на SQL, а также любых других символов, которые являются особенными для синтаксического анализатора SQL.