當然了
你少了
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條件吧?
第一步:變數和目標表的准備