![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
вставка апострофа в строковую константу в Oracle-скрипте [D7]
Вольный Стрелок © (2005-06-24 18:26:00)Внутри ХП пытаюсь присвоить строковую константу в переменную. В тексте строки должен быть апостроф. Но он же является зарезервированным ограничителем строки в Oracle. Как все-таки втулить туда его?
Val (2005-06-24 19:20:00) [1]совет 1 полезный, но не к месту.
ну спасибо, засну теперь спокойно :)
Вольный Стрелок (2005-06-24 19:18:00) [2]
cDate := '2999/01/01:12:00:00PM';
cMask := 'yyyy/mm/dd:hh:mi:sspm';
EXECUTE IMMEDIATE 'ALTER TABLE ' || cTable ||
' ADD d_t DATE default to_date( :1, :2 )'
USING cDate, cMask;
такая конструкция не работает
ora-01027: переменная привязки не работает в операциях определения данных
так что совет 1 вредный, а реплика 2 похожа на правду
Val (2005-06-24 19:16:00) [3]1. сорри :) про параметры в ddl - это я загнул, не обратил внимания, вечер :(
Reindeer Moss Eater (2005-06-24 19:16:00) [4]begin
execute immediate('insert into emp(empno,ename) values(1,''RME'' || '''''''' || ''s sample'')');
end;
/
Val (2005-06-24 19:04:00) [5]1.Нет, он там нафиг не нужен. там нужны параметры и using.См.синтаксис в доке.
2.Это вы так думаете, а про васю я вам из злорадства пишу, выполнять и смотреть его не надо, я просто форум загаживаю.
Вольный Стрелок (2005-06-24 18:57:00) [6]
EXECUTE IMMEDIATE 'ALTER TABLE ' || cTable ||
' ADD date_to DATE default to_date('||chr(39)||'2999/01/01:12:00:00PM'||chr(39)||','||chr(39)||'yyyy/mm/dd:hh:mi:sspm'||chr(39)||')';
Здесь нужен именно апостроф. Не так ли?
И про код 39 вопрос проигнорирован...
Val (2005-06-24 18:53:00) [7]select ''''||'вася'||chr(39) from dual
апостроф-то катит, но дело в том, что вам нужна кавычка :)
Вольный Стрелок (2005-06-24 18:50:00) [8]39 - это код апострофа на виндузе
а если Oracle на Linux/Unix/Solaris ?
апостроф над Tab - обратный, и в Oracle не катит :(
Val (2005-06-24 18:43:00) [9]chr(39) - одинарная кавычка...но, вообще...апостроф есть над Tab :)