eg:
UPDATE test t
SET (tablespace_name, extent_management) = (
SELECT (u.tablespace_name, u.extent_management)
FROM user_tables a, user_tablespaces u
WHERE t.table_name = a.table_name
AND a.tablespace_name = u.tablespace_name)
WHERE t.table_name LIKE '%A%'; 此语句在Sql Server中好像不支持, Set一次多列,会报“(”附近有语法错误,查了,sql的联机帮助,貌似是没有类似的语法。 然而如果写成:
UPDATE test t
SET tablespace_name = u.tablespace_name,
extent_management = u.extent_management
FROM user_tables a, user_tablespaces u
WHERE t.table_name = a.table_name
AND a.tablespace_name = u.tablespace_name
AND t.table_name LIKE '%A%';
貌似Oracle会报ORA-00933: SQL command not properly ended的错误。 请问应该如何写能同时适用于这两个数据库?
UPDATE test t
SET (tablespace_name, extent_management) = (
SELECT (u.tablespace_name, u.extent_management)
FROM user_tables a, user_tablespaces u
WHERE t.table_name = a.table_name
AND a.tablespace_name = u.tablespace_name)
WHERE t.table_name LIKE '%A%'; 此语句在Sql Server中好像不支持, Set一次多列,会报“(”附近有语法错误,查了,sql的联机帮助,貌似是没有类似的语法。 然而如果写成:
UPDATE test t
SET tablespace_name = u.tablespace_name,
extent_management = u.extent_management
FROM user_tables a, user_tablespaces u
WHERE t.table_name = a.table_name
AND a.tablespace_name = u.tablespace_name
AND t.table_name LIKE '%A%';
貌似Oracle会报ORA-00933: SQL command not properly ended的错误。 请问应该如何写能同时适用于这两个数据库?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货