SQL 任何地方错误 -728:尝试对不可更新的远程查询执行更新操作
SQL Anywhere Error -728: Update operation attempted on non-updatable remote query
我想做什么:
update table_name set field2 = substring(REGEXP_SUBSTR(field1, 'item=[0-9]+', charindex('item=', field1)), 6)
但是我得到了
SQL Anywhere Error -728: Update operation attempted on non-updatable remote query
我能以某种方式解决它吗?我不使用 local/remote tables。我用一个 table.
所以我想我找到了解决方案...甚至 2 个。
不幸的是仍然没有办法使用 REGEXP_SUBSTR...
我愿意:
先
alter table my_table add item_position int null
alter table my_table add is_char int null
alter table my_table add item_part varchar(200) null
alter table my_table add item bigint null
update my_table set item_position = charindex('item=', field1)+5;
update my_table set item_part = substring(field1, item_pos, 10);
update my_table set is_char = charindex('&', clid_part)-1;
update my_table set item = case when is_char = -1 then item_part else substring(item_part, 1, charindex('&', item_part)-1) end;
或
cast(str_replace(substring(field1, charindex('item=', field1)+5, 10), substring(substring(field1, charindex('item=', field1)+5, 10),
(charindex('&', substring(field1, charindex('clid=', field1)+5, 10)))), '') as integer) as item
像这样
我建议仔细检查 table_name 实际上是 table,而不是视图。如果是视图,可以用sp_helptext命令查看它的定义,比如
sp_helptext 'view_name'
或
sp_helptext 'schema_name.view_name'
我想做什么:
update table_name set field2 = substring(REGEXP_SUBSTR(field1, 'item=[0-9]+', charindex('item=', field1)), 6)
但是我得到了
SQL Anywhere Error -728: Update operation attempted on non-updatable remote query
我能以某种方式解决它吗?我不使用 local/remote tables。我用一个 table.
所以我想我找到了解决方案...甚至 2 个。 不幸的是仍然没有办法使用 REGEXP_SUBSTR... 我愿意:
先
alter table my_table add item_position int null
alter table my_table add is_char int null
alter table my_table add item_part varchar(200) null
alter table my_table add item bigint null
update my_table set item_position = charindex('item=', field1)+5;
update my_table set item_part = substring(field1, item_pos, 10);
update my_table set is_char = charindex('&', clid_part)-1;
update my_table set item = case when is_char = -1 then item_part else substring(item_part, 1, charindex('&', item_part)-1) end;
或
cast(str_replace(substring(field1, charindex('item=', field1)+5, 10), substring(substring(field1, charindex('item=', field1)+5, 10),
(charindex('&', substring(field1, charindex('clid=', field1)+5, 10)))), '') as integer) as item
像这样
我建议仔细检查 table_name 实际上是 table,而不是视图。如果是视图,可以用sp_helptext命令查看它的定义,比如
sp_helptext 'view_name'
或
sp_helptext 'schema_name.view_name'