目录

Search

  1. 前言
  2. 转换简介
  3. 转换端口
  4. 转换缓存
  5. 地址验证器转换
  6. 汇总器转换
  7. 关联转换
  8. 离散记录异常转换
  9. 大小写转换器转换
  10. 分类器转换
  11. 比较转换
  12. 合并转换
  13. 数据屏蔽转换
  14. 数据处理器转换
  15. 判定转换
  16. 重复记录异常转换
  17. 表达式转换
  18. 筛选器转换
  19. 层次结构到关系转换
  20. Java 转换
  21. Java 转换 API 引用
  22. Java 表达式
  23. 联接器转换
  24. 键生成器转换
  25. 标签创建器转换
  26. 查找转换
  27. 查找缓存
  28. 动态查找缓存
  29. 宏转换
  30. 匹配转换
  31. 字段分析中的匹配转换
  32. 标识分析中的匹配转换
  33. 规范器转换
  34. 合并转换
  35. 解析器转换
  36. Python 转换
  37. 等级转换
  38. 读取转换
  39. 关系到层次结构转换
  40. REST Web 服务使用者转换
  41. 路由器转换
  42. 序列生成器转换
  43. 排序器转换
  44. SQL 转换
  45. 标准创建器转换
  46. 联合转换
  47. 更新策略转换
  48. Web 服务使用者转换
  49. 解析 Web 服务 SOAP 消息
  50. 生成 Web 服务 SOAP 消息
  51. 加权平均值转换
  52. 窗口转换
  53. 写入转换
  54. 附录 , A: 转换分隔符

Developer 转换指南

Developer 转换指南

不同数据库的结果集

不同数据库的结果集

配置存储过程以根据数据库类型使用不同的语法返回结果集。

Oracle

Oracle 存储函数返回包含游标的结果:
create or replace function sp_ListEmp return types.cursortype as l_cursor types.cursorType; begin open l_cursor for select ename, empno from emp order by ename; return l_cursor; end;
Oracle 还将游标接受为输入参数。不能通过 SQL 转换将游标配置为输入参数。

Microsoft SQL Server

Microsoft SQL Server 存储过程返回在过程体中包含 Select 语句或者将返回类型显式声明为表的结果集存储过程。
Create PROCEDURE InOut( @inout varchar(100) OUT ) AS BEGIN set @inout = concat(@inout,'__') select * from mytable; END

IBM DB2

IBM DB2 存储过程可以返回包含打开游标的结果集。其返回的结果集数量在 RESULT SET 子句中声明。存储过程打开游标并将其返回。以下示例返回 2 个打开游标。
CREATE PROCEDURE TESTMULTIRS (IN i_cmacct CHARACTER(5)) RESULT SETS 2 LANGUAGE SQL BEGIN DECLARE csnum INTEGER; --Declare serial cursors to consume less resources --You do not need a rollable cursor. DECLARE getDeptNo CHAR(50); --Be careful with the estimated length. DECLARE getDeptName CHAR(200); DECLARE c1 CURSOR WITH RETURN FOR s1; SET getDeptNo = 'SELECT DEPTNO FROM DEPT'; SET getDeptName = 'SELECT DEPTNAME FROM DEPT'; PREPARE s1 FROM getDeptNo; OPEN c1; END;

Sybase

Sybase 存储过程返回在过程体中包含 Select 语句或者将返回类型显式声明为表的结果集存储过程。
CREATE PROCEDURE FETCHEMPINFO ( @p_State VARCHAR(5), @e_id INT OUTPUT, @e_name VARCHAR(50) OUTPUT ) AS BEGIN SET NOCOUNT ON SELECT EMP_ID, NAME FROM EMP WHERE STATE = @p_State ORDER BY EMP_ID SET NOCOUNT OFF SELECT @e_id AS EMP_ID, @e_name AS NAME RETURN END GO --Configure the following variables to execute the procedure. DECLARE @p_State VARCHAR(5) DECLARE @EMPID int DECLARE @EMPNAME varchar(50) SET @p_State = 'CA' exec FETCHEMPINFO @p_State, @e_id = @EMPID, @e_name = @EMPNAME GO