2012-02-28 4 views
0

Я получаю сообщение об ошибке при попытке сделать это с помощью SQL. ftp.server ключ, значение которого я хотел бы изменить:Что такое следующая инструкция sql, дающая ошибку?

UPDATE OL_PREF SET ftp.server='dev.isinet.com' 
+0

Какие СУБД вы используете? – squillman

+0

i m using oracle rdbms – Phoenix

+0

- это поле, фактически называемое «ftp.server»? –

ответ

2

Если имя столбца действительно ftp.server, то правильный синтаксис Oracle для его обновления должен быть

UPDATE OL_PREF SET "ftp.server" ='dev.isinet.com' 

в Oracle, двойные кавычки правильный способ обработки имен столбцов, которые имеют нестандартные символы, включая строчные буквы и период. Обратите внимание, что для этого необходимо иметь точное имя столбца, включая случай.

Вы можете проверить имя столбца с:

SELECT column_name FROM user_tab_columns WHERE table_name='OL_PREF' ORDER BY column_name; 

Если то, что вы на самом деле означает, что у вас есть таблица, в которой хранятся пары ключ-значение, и что «ftp.server» является ключом, то вы вероятно, хотите получить обновление, подобное тому, которое было в ответе Марка Уилкинса.

0
UPDATE OL_PREF 
SET ftp.server ='dev.isinet.com' 

нет '' для имен столбцов

+0

все еще не работает – Phoenix

+0

Какая ошибка? –

0

SQL Update

'ftp.server' в кавычках. (И это не должно быть)

+0

ftp.server выглядит как имя поля и не должен быть заключен в кавычки –

+0

Я думаю, он говорил, что изначально OP использовал цитаты вокруг «ftp.server». – bfavaretto

+0

Я имею в виду, что неправильная часть - это кавычки. – Onur

2
UPDATE OL_PREF SET [ftp.server]='dev.isinet.com' 

или

UPDATE OL_PREF SET [ftp].[server]='dev.isinet.com' 

, если FTP является схемой и сервером является имя_полем.

+1

Я не верю, что это правильно для Oracle. –

1

Вы не можете поместить имя столбца в кавычки.

Вы можете использовать скобки, которые имеют такую ​​же функциональность как и цитаты.

UPDATE OL_PREF SET [ftp.server] ='dev.isinet.com' 

Кроме того, это хорошая идея использовать «двухставочный именование», с указанием схемы, а также:

UPDATE dbo.OL_PREF SET [ftp.server] ='dev.isinet.com' 
0

Вы получаете ошибку ORA-00904 string: недопустимый идентификатор?

Если так read this

Я сделал быстрый тест на этом

SQL> create table t_tab_1 (tname varchar2(3), "ftp.service" varchar2(20)); 

Таблица создана.

SQL> insert into t_tab_1(tname,"ftp.service") values('21','ftp://fila'); 

1 ряд созданных.

SQL> update t_tab_1 set "ftp.service"='fila.real.com'; 

1 ряд обновлен.

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

Смежные вопросы