1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > datastage 函数_DataStage 调用存储过程(含输入输出参数)

datastage 函数_DataStage 调用存储过程(含输入输出参数)

时间:2019-10-31 06:30:51

相关推荐

datastage 函数_DataStage 调用存储过程(含输入输出参数)

版本:IBM InfoSphere DataStage V11.3.1

操作系统:linux redhat 6.4

需求场景:

DS调度数据库中存储过程,需要带入输入输出参数。

环境准备:

数据准备

数据库账户:scott 创建存储过程名getSalaryByEmpNo

CREATE OR REPLACE PROCEDURE getSalaryByEmpNo(eNo IN NUMBER,

salary OUT NUMBER) AS

BEGIN

SELECT SAL INTO salary FROM EMP WHERE EMPNO = eNo;

EXCEPTION

WHEN OTHERS THEN

ROLLBACK;

END;

DS环境变量配置

配置scott用户的环境变量

开发过程

1 创建作业如下

2 定义输入变量值 V_eNo

3 设置存储过程的连接信息

设置存储过程属性,选择存储过程类型为Source(表示作为源),在Syntax属性栏手工设置输入参数pa的值为1,输出参数pb用:1作为占位符,表示将存储过程的结果输出到后续的DataStage组件(Peek)。

4 定义输出变量salary

5 调用 手工输入参数 V_eNo

一般这个参数,我们可以写shell 脚本来获取,之前有些过文章。

6 查看日志

运行作业,日志显示存储过程getSalaryByEmpNo被DataStage调用,并输出正确结果。

关于Stored Procedures官网一些介绍:

Stored Procedures 阶段支持三种过程类型:

变换过程

源过程

目标过程

源过程和目标过程将列元数据用作参数以传入过程中。您不必输入参数信息,如果输入了此信息,该阶段会将其忽略。 源过程将列元数据用作输出参数(以从数据库中读取)。 目标过程将列元数据用作输入参数(以写入数据库)。

注:源过程和目标过程不能同时具有输入和输出链接。必须使用变换过程。

源过程能够执行包含 SQL SELECT 语句的存储过程。它可以:

针对作业调用一次

与输出链接一起使用

返回输出参数

返回多行

目标过程能够执行包含 SQL INSERT 语句的存储过程。它可以:

针对作业调用一次

针对每行调用一次(缺省值)

与输入链接一起使用

传递输入参数

如果希望将参数与列元数据混合并匹配, 请使用变换过程,并在参数网格中指定存储过程参数。

变换过程在数据库中执行各种逻辑决策。它可以:

针对作业调用一次

针对每行调用一次(缺省值)

使用参数网格传递输入参数

使用参数网格返回输出参数

如果在作业过程当中使用(输入和输出链接),那么传递列

仅与输入链接一起使用

仅与输出链接一起使用

与输入链接和输出链接一起使用

返回多行

所有过程都可以:

返回可映射到数据流的错误代码(由用户定义或通过数据库定义)

返回可映射到数据流的消息(由用户定义或通过数据库定义)

允许用户定义的致命和警告代码恢复决策

定义事务隔离级别

当执行插入行的过程时,允许指定提交大小

允许用户定义的过程执行语句(不常用)

允许在读取时返回多行注:Stored Procedures 阶段不执行任何 SQL 语句。 它专用于存储过程的执行。本机阶段用于任何 SQL 语句的执行。

Teradata

通过使用 Stored Procedure 阶段,可以从InfoSphere® DataStage®作业调用 Teradata 存储过程、宏和函数。 不能从InfoSphere DataStage创建 Teradata 存储过程、宏或函数。应该使用 Teradata 自有的用户接口,如 BTEQ 或 Teradata SQL Assistant(在 Teradata Tools and Utilities 7.0 之前称为 Queryman),创建这类对象。

SQL Server

存储过程是一组 Transact-SQL 语句,这些语句被编译成单个执行计划,使用一个名称进行存储并作为一个单元来处理。

Stored Procedure 阶段支持调用 Microsoft SQL Server 存储过程(内部和外部)和返回单一值的用户定义的函数。

注:返回表的用户定义的函数更适合从 ODBC 阶段调用,这是因为生成的 SELECT 语句必须查询表。

支持标量用户定义的函数。不支持将全局游标和使用游标变量的输出参数用作返回数据的方法。

Microsoft SQL Server 存储过程支持输入和输出参数。

总结:

多思考,多实践。

后续:

对于

begin

-- Call the procedure

sp_fct_capitalsource(v_date => :v_date,

v_return => :v_return);

end;

调度如附件

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。