Какой следующий SQL-оператор дает ошибку? - PullRequest
0 голосов
/ 29 февраля 2012

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

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

Ответы [ 6 ]

2 голосов
/ 29 февраля 2012

Если имя столбца действительно 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' является ключом, то вам, вероятно, понадобится обновление, подобное приведенному в ответе Марка Уилкинса.

2 голосов
/ 29 февраля 2012
UPDATE OL_PREF SET [ftp.server]='dev.isinet.com'

или

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

, если ftp - это схема, а сервер - это имя поля.

1 голос
/ 29 февраля 2012

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

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

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

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

UPDATE dbo.OL_PREF SET [ftp.server] ='dev.isinet.com'
0 голосов
/ 01 марта 2012

Получаете ли вы ошибку ORA-00904 строка: неверный идентификатор?

Если это так прочитайте это

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

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 в вашем операторе обновления.

0 голосов
/ 29 февраля 2012

Обновление SQL

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

0 голосов
/ 29 февраля 2012
UPDATE OL_PREF 
SET ftp.server ='dev.isinet.com'

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...