Oracle和Sybase兼容性创建表new_table为
问题描述:
我想写一个SQL查询需要在Sybase和Oracle数据库上兼容。查询如下所示:Oracle和Sybase兼容性创建表new_table为
SELECT *
INTO new_table
FROM other_table
此查询在Sybase数据库上运行良好,但在Oracle数据库上运行良好。我发现甲骨文的等价物:
CREATE table new_table AS
SELECT *
FROM other_table
是否有写第三查询会做同样的,并且可以在Sybase和Oracle数据库上执行的方法吗?
答
如您所见,Oracle支持INTO
,但不像Sybase/SQL Server那样使用它。同样,Sybase不支持Oracle对CREATE TABLE
语法的扩展。
创建系统之间&导入数据的表的最可靠的方法是使用两个语句:
CREATE TABLE new_table (
...columns...
)
INSERT INTO new_table
SELECT *
FROM OLD_TABLE
即使这样,语法是不同的,因为Oracle要求每个语句由分号分隔当TSQL不。
创建表&从另一个表中导入所有数据对我来说是一个红旗 - 这不是您在生产系统的存储过程中要做的事情。 TSQL和PLSQL是非常不同的,所以我期望DML变化的单独脚本。
答
没有可以做你想做的查询。这些环境是非常不同的。
答
这是可能的。
SELECT * INTO new_table FROM existing_table;
感谢
确定。并且知道我需要根据查询结果构建一个新表,您认为有一个查询可以在这两种环境下工作吗? – MartinMoizard 2011-02-17 14:42:08