SQL Server中等价于Oracle 'as table of'的语法是什么
Oracle
as table of 类型转SQL Server语法解决方案 你提供的Oracle代码作用是创建名为PARAMS的集合类型,本质是存储字符串的嵌套表,SQL Server中对等的对象是用户定义表类型(UDTT),直接转换后的语法如下:
CREATE TYPE PARAMS AS TABLE ( Value VARCHAR(3000) )
注意事项
- 如果需要兼容非ASCII字符(比如中文、特殊符号),可以将
VARCHAR(3000)替换为NVARCHAR(3000),存储容量和原Oracle的varchar2(3000)基本对齐 - SQL Server 默认不支持
CREATE OR REPLACE直接覆盖现有类型,如果要实现和原Oracle一致的覆盖创建效果,可用以下语句:
DROP TYPE IF EXISTS PARAMS GO CREATE TYPE PARAMS AS TABLE ( Value VARCHAR(3000) ) GO
- 转换后的类型使用方式和原Oracle类型基本一致,可作为存储过程、自定义函数的入参,也可声明为T-SQL变量存储多行字符串数据
- 若将该类型用作存储过程/函数的入参,需要在参数声明后加
READONLY修饰,这是SQL Server表值参数的强制要求
内容的提问来源于stack exchange,提问作者Chang
相关产品推荐
相关产品推荐

