当然了
你少了
command.parameters[“user”].direction=parameterdirection.
input;
command.parameters[“user”].direction=parameterdirection.
input;
你得在sqlcommand中设置这两个参数是否为输入数据还是输出数据,你不告诉计算机,他们怎么知道该把哪个参数里的值传入存储过程呢,自然存储过程就得不到该参数里的值喽!
最后再
connection.open();
...
Ⅱ ETL kettle从上一步传来的参数怎么使用
要使用从上一步传来的参数,只要在使用SQL进行引用就可以。
ps:对应的拓扑结构:
Ⅲ 如何在kettle作业中设置参数
1、首先,我们先打开KETTLE,进入软件的主界面后,我们可以先创建一个作业或者转换,然后双击空白处。
2、我们即可呼出作业或者转换属性窗口,我们在选项卡中国选择“命名参数”,用户填写您所需要设置的命名参数以及默认值,支持添加描述。
3、这里,我们以表输入功能作为例子,我们打开数据库连接,然后可以使用对应的参数,我们设置主机名称、数据库名称等一系列参数,然后输入密码,若用户的密码需要使用参数,勾选密码下的Use Result Streaming Cursor选项。
4、然后,用户即可配置的作业中可以使用相应的参数,住的注意的是参数名称要与设置的参数名称一致,还需要·点选替换SQL语句里的变量。
5、用户按照下图所示进行输入相应参数,点击启动按钮即可配置完成。
Ⅳ kettle可以使用sql的运行结果作为参数传递吗
可以。
例如sql select name from table1 where.....
你可以把这个name作为参数放到kettle之后作为参数。例如“设置变量“控件。
或者你可以在这个sql后加一控件“表输入”,参数用?代替即可
Ⅳ sql存储过程--关于参数传递
列名 'admin' 无效 要与你定义的存储过程的名一样才行。
Ⅵ Sql 中如何在函数中传递表名参数
我查遍网络找不到,2020.06.28 18:45原创一个目前你能找到的唯一权宜之计:
因sql的函数本身不支持对实体表进行增、删、改,所以对实体表进行的insert、update、delete均不可用、另外exec也被禁用了,因为动态表名和动态字段值不会太多,所以想到写枚举解决。
--如果函数返回表为@ab table (a1 varchar(100), a2 varchar(100))
--如果表名为@tableName
if @tableName='表1'
insert into @ab select a1,a2 from 表1 where ...
if @tableName='表2'
insert into @ab select a1,a2 from 表2 where ...
如果有字段名参数为@fieldName,字段值参数@fieldValue
if @fieldName='a1'
delete from @ab where a1 not like '%' + @fieldValue + '%'
if @fieldName='a2'
delete from @ab where a2 not like '%' + @fieldValue + '%'
--对@ab的其它业务逻辑
...
return
Ⅶ 怎么用SQL 语言给存储过程传递参数
create proc p1
@classid int=0
,@gid int =0
as
select @classid ,@gid
go
-------调用:
declare @classid int =99,@gid int =1048
exec p1 @classid,@gid
Ⅷ 如何给一个 Kettle 转换设置变量和命令行参数
1. 变量的类型
Kettle 的早期版本中的变量只有系统环境变量
目前版本中(3.1) 变量包括系统环境变量, "Kettle变量" 和内部变量三种系统环境变量的影响范围很广,凡是在一个 JVM下运行的线程都受其影响.Kettle 变量限制了变量的作用范围, 变量范围包括三种分别是 grand-parent job, parent job, root job 内部变量: 是 kettle 内置的一些变量, 主要是kettle 运行时依赖的环境, 如转换文件名称, 转换路径,ip地址, kettle 版本号等等.2. 变量的设置
"系统环境变量" 有三种设置方式
1) 通过命令行 -D 参数
2) 属性文件 kettle.property 中设置, 该属性文件位于 ${user.home}.kettle 下
3) 通过设置环境变量步骤 (Set Variable) 设置."Kettle 变量" 只能通过设置环境变量 (Set Variable) 步骤设置,同时设置变量的作用范围.
"内部变量" 是预置的无须设置.3. 变量的使用
无论哪种类型的变量在使用上都是一样的, 有两种方式
1) 通过 %%var%% 或 ${var} 来引用, 这个引用可以用在 SQL 语句中, 也可以用在允许变量输入的输入框里.
2) 通过获取变量 (Get Variable) 步骤来使用命令行参数:
1. 设置: 命令行参数通过获取系统信息(Get System Info) 步骤设置, 在使用时可以像列名一样来使用,不必像变量一样要通过 ${var} 这样的格式引用. 用户最多可以设置10个命令行参数
2. 传递: 命令行下使用 pan /file:xxx.ktr arg1 arg2 来传递参数.图形界面下,每次运行时有要求输入参数的提示窗口.
Ⅸ 如何传递参数到 SQL 脚本
可以这么写,把目录下file_1,file_2,file_3 文件名保存在一个文本文件里, 这个文件叫file.txt,格式一行一个文件名。比如脚本叫test.sh 使用:./test.sh file.txt 这样就循环读取文本中每行的文件名并代入到变量filename 或者你也可以通过files=($(ls -l | grep ^- | awk '{print $8}')) 截取一个files数组然后,for filename in ${files[*]} 往for循环里套。 #!/bin/bash while read filename do sqlplus -S g471725/g471725 <<EOF define v_input_file=$filename @sql.sql exit EOF done < $1
Ⅹ ETL kettle 从上一步传来的参数使用
你的意思是从一个表里面查到2列数值,然后想把这2列作为下一个SQL的where条件吧?
第一步:变量和目标表的准备