将表数据类型从 SQL Server 转换为 Oracle 并将动态 SQL 数据插入到表数据类型

Posted

技术标签:

【中文标题】将表数据类型从 SQL Server 转换为 Oracle 并将动态 SQL 数据插入到表数据类型【英文标题】:Converting Table Data Type from SQL Server to Oracle and dynamic SQL data inserting to table data type 【发布时间】:2020-04-04 11:07:01 【问题描述】:

我在 SQL Server 中有一段代码。

我正在尝试将其转换为 ORACLE 脚本。这段代码是否对称翻译并不重要。主要是用原生的方式解决问题。

DECLARE @tabForTextToReplace AS TABLE (textForReplace nvarchar(200)) 

set @execSQLCommand='select top 1 '  + @viewColumnName + ' from  ' +
     @viewName + '  where obj_ID='+cast(@receiverID as varchar(50))

INSERT into @tabForTextToReplace exec sp_executesql  @execSQLCommand

【问题讨论】:

【参考方案1】:

虽然我在 TSQL 方面完全没有经验,但在 PL/SQL 中有些东西看起来像您所展示的(尽管代码中的“前 1”确实告诉 SQL 只返回一行,那么为什么将其插入到表超出了我的范围):

declare
type t is table of nvarchar2(10);
ttab    t;
begin
select cast('123' as nvarchar2(10)) bulk collect into ttab from dual connect by level <10;
end;
/

【讨论】:

是的,你说得对,将前 1 个代码插入表中,我在 MSSQL 中修复了它,并将尝试将其提交给 Oracle

以上是关于将表数据类型从 SQL Server 转换为 Oracle 并将动态 SQL 数据插入到表数据类型的主要内容,如果未能解决你的问题,请参考以下文章

从 Excel 导入 SQL Server:将 varchar 数据类型转换为 datetime 数据类型导致值超出范围

使用 T-SQL 将表转换为 XML

SQL Server 2008 查询将表数据从一个移动到另一个

SQL Server查询表值参数的短路EXISTS语句

使用 Spark Scala 将 Sql Server 数据类型转换为 Hive 数据类型

SQL Server 2012 将数据类型 varchar 转换为数字时出错