当我尝试使用SQL执行此操作时出现错误。 ftp.server是我想要更改其值的键:
UPDATE OL_PREF SET ftp.server='dev.isinet.com'
答案 0 :(得分:2)
UPDATE OL_PREF SET [ftp.server]='dev.isinet.com'
或
UPDATE OL_PREF SET [ftp].[server]='dev.isinet.com'
如果ftp是架构而服务器是字段名。
答案 1 :(得分: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'是一个键,那么你可能想要像Mark Wilkins的答案那样更新。
答案 2 :(得分:1)
您不能将列名放在引号中。
您可以使用括号,它们与引号具有相同的功能。
UPDATE OL_PREF SET [ftp.server] ='dev.isinet.com'
此外,最好使用“两部分命名”,同时指定架构:
UPDATE dbo.OL_PREF SET [ftp.server] ='dev.isinet.com'
答案 3 :(得分:0)
UPDATE OL_PREF
SET ftp.server ='dev.isinet.com'
列名称否''
答案 4 :(得分:0)
'ftp.server'在引号中。 (那应该不是)
答案 5 :(得分: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');
创建了一行。
SQL> update t_tab_1 set "ftp.service"='fila.real.com';
更新了一行。
如果表中有多行,请记住在update语句中使用where子句。