ExecuteStoreProcedure
描述:
调用提供的SQL存储过程(procedure)方法,查询到的结果将转换为JSON。由于采用流的方式,因此支持任意大的结果集。该组件可以通过定时器或cron表达式的调度方式运行,也可以由输入流文件触发运行。如果由输入流文件触发运行,流文件的属性可以通过select查询语句获得,查询语句使用?号转义参数。在这种情况下,使用的参数必须以流文件属性的形式存在,属性的命名方式约定为:sql.args.N.type和sql.args.N.value,其中N为正整数。sql.args.N.type应该为标明JDBC类型的数字。流文件的内容应该为UTF-8格式。流文件的属性"executesql.row.count"标明选择了多少行。
标签:
store procedure, call, sql, 存储过程
参数:
如下列表中,必填参数则标识为加粗. 其他未加粗参数,则表示为可选参数。表中同时提到参数默认值设置, 并且 参数还支持 表达式语言.
名字 | 默认值 | 允许值列表 | 描述 |
---|---|---|---|
数据库连接池服务 | 控制器服务API: DBCPService 实现: DBCPConnectionPoolLookup DBCPConnectionPool | 用于获取数据库连接的控制器服务。 | |
方法名 | 要调用的方法名。如果指定了该属性,则不论输入流文件的内容如何,都将使用该属性;如果该属性为空,则预期输入流文件的内容为一个有效方法,该方法由组件向数据库发起调用。 支持表达式语言 (支持流属性和变量) | ||
PROCEDURE OR FUNCTION | procedure | - function - procedure | Type of method to execute, 1:procedure, 2:function |
最大等待时间 | 0 seconds | 允许运行SQL select查询的最大时间,0表示没有限制。如果值小于1秒,则被视为等于0 。 | |
参数 | 方法使用的参数。如果设定了此属性,则不论输入流文件的属性如何,都将使用该属性。如果该属性为空,则预期输入流文件的属性是有效的。该值为JsonArray类型,包含许多表示参数特性的json对象,特性的键包括param.index、param.value、param.type、param.value.type和param.format等。param.index的值为整数,表示参数在sql中的序号,param.type为参数类型,类似IN,IN/OUT,OUT.param.param.param.value。param.value.type表示参数的类型。param.format是可选的,但默认的选项可能不适用于您的数据。输入流文件应该是参数化的SQL语句,某些情况下,需要指定格式选项,现在这只适用于二进制数据类型、日期、时间和时间戳。二进制数据类型(默认为:"ascii")-ascii:属性中的每个字符串字符表示一个字节,这是Avro组件提供的格式;base64:该字符串为Base64编码的字符串;hex:该字符串为十六进制编码,所有字母都是大写,开头没有“0x”。日期/时间/时间戳数据类型-其支持自定义格式,或者根据java.time.format.DateTimeFormatter指定的命名格式('yyyy-MM-dd','ISO_OFFSET_DATE_TIME')。如果没有指定,则输入应该是一个长整型的unix时间戳,或者日期格式为"yyyy-MM-dd"、时间格式为"HH:mm:ss.SSS"(一些数据库引擎,如Derby或MySQL,不支持毫秒,将截断毫秒)、时间戳格式为"yyyy-MM-dd HH:mm:ss.SSS"的字符串。 | ||
获取结果集行数 | 0 | SQL查询语句能够返回的最大结果集行数,0表示没有限制。 |
连线:
名字 | 描述 |
---|---|
success | 跟据SQL查询结果集成功创建的流文件,将被路由到此连线 |
failure | SQL查询执行失败,输入流文件将受到惩罚并路由到此连线。 |
读取属性:
未提供。
写入属性:
名字 | 描述 |
---|---|
executesql.row.count | 包含select查询返回的行数 |
executesql.query.duration | 查询过程耗费的时间(以毫秒为单位) |
executesql.resultset.index | 假如返回多个结果集,则此值表示该结果集的索引(从0开始)。 |
ResultSet | 调用存储过程返回的结果。ResultSet是一个调用存储过程返回的JsonArray,包含多个JsonObject,每个JsonObject表示数据库表中的一行。 |
Results | 调用存储过程返回的结果。Results是一个调用存储过程返回的JsonObject,JsonObject表示一些返回变量,如outParameters或inoutParameters。 |
状态管理:
该组件不保存状态。
限制:
该组件没有限制
输入流要求:
组件允许提供输入流。
系统资源考量:
未提供。