2012-02-28 51 views
0

當我嘗試使用SQL執行此操作時出現錯誤。 ftp.server是其價值我想改變的關鍵是: '' 列名什麼是下面的SQL語句提供一個錯誤?

+0

您使用的是什麼RDBMS? – squillman 2012-02-28 20:42:42

+0

我使用oracle rdbms – Phoenix 2012-02-28 20:43:26

+0

是實際稱爲「ftp.server」的字段嗎? – 2012-02-28 20:46:47

回答

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 2012-02-28 20:43:54

+0

最新的錯誤? – 2012-02-28 20:46:46

0

SQL Update

'ftp.server

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

ftp.server看起來像一個字段名稱,不應該用引號括起來 – 2012-02-28 20:47:26

+0

我想他是說最初OP使用「ftp.server」引號。 – bfavaretto 2012-02-28 20:51:47

+0

我的意思是,錯誤的部分是引號。 – Onur 2012-02-28 21:01:11

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

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

如果FTP是一個架構和服務器的字段名。

+1

我不相信這對於Oracle來說是正確的。 – 2012-02-28 22:04:16

1

您不能將列名放在引號中。

您可以使用括號,它們與引號具有相同的功能。

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

而且,這是一個好主意,用「兩重部分命名」,指定模式以及:

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

您是否收到錯誤ORA-00904字符串:無效標識符?

如果是這樣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 row created。

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

1 row updated。

如果表中存在多於I行,請記住在更新語句中使用where子句。

相關問題