我現在想建立一個動態的資料管道
就是源資料庫和目標資料庫可以改變,通過變數傳
但是在最開始定義一個資料管道的時候不是讓選擇好源資料庫和目標資料庫馬
怎么改呢?
謝謝各位大俠!
uj5u.com熱心網友回復:
http://blog.csdn.net/daixf_csdnuj5u.com熱心網友回復:
多謝!uj5u.com熱心網友回復:
暈,竟然不結貼!uj5u.com熱心網友回復:
蹭點分uj5u.com熱心網友回復:
蹭點分ssuj5u.com熱心網友回復:
蹭分,toouj5u.com熱心網友回復:
上去看了可是,沒看懂
太復雜了,-_-!
能不能提供一個簡單點的動態資料管道,
只要能改變源和墓地資料庫就可以了
資料表示固定的。
再次感謝!
uj5u.com熱心網友回復:
只要能改變源和墓地資料庫就可以了那就修改 sqlca 和 新事務物件的 資料庫就行了!
uj5u.com熱心網友回復:
我是著修改過sqlca,但是報錯因為在建立資料管道的時候(我用的是new-database-datapipeline)
就選定源資料庫和目標資料庫和表,還有傳輸方式
源、目標資料庫在當時建立的時候就確定了
有其他的方式建立資料管道馬?
uj5u.com熱心網友回復:
出錯的時候察看對應Transaction的SQLERRTEXT,你只說出錯,誰猜的出來。
uj5u.com熱心網友回復:
嘿嘿...耐心..
uj5u.com熱心網友回復:
提示的錯誤是源資料庫錯誤因為我用面板作的資料管道,在最開始是指定了源資料庫的
可是現在用的時候修改了sqlca,改變了源資料庫
我是想知道,如何動態的作一個資料管道,可以改變源資料庫和目標資料庫
不需要改變傳輸的表名。
uj5u.com熱心網友回復:
sigh~`我覺得我說的很清楚了阿
咋沒人回呢
uj5u.com熱心網友回復:
我說得也很清楚了!uj5u.com熱心網友回復:
我在資料管道那里點edit source 如下:PIPELINE(source_connect=maps,destination_connect=cs2002,type=refresh,commit=100,errors=100,keyname="T_FILE")
SOURCE(name="T_FILE",COLUMN(type=varchar,name="ID",dbtype="VARCHAR2(5)",key=yes,nulls_allowed=no)
COLUMN(type=varchar,name="SYSTEM_ID",dbtype="VARCHAR2(5)",nulls_allowed=no)
COLUMN(type=varchar,name="ENAME",dbtype="VARCHAR2(50)",nulls_allowed=no)
COLUMN(type=varchar,name="CNAME",dbtype="VARCHAR2(50)",nulls_allowed=no)
COLUMN(type=varchar,name="AENAME",dbtype="VARCHAR2(50)",nulls_allowed=yes)
COLUMN(type=varchar,name="ACNAME",dbtype="VARCHAR2(50)",nulls_allowed=yes)
COLUMN(type=varchar,name="FILETYPE",dbtype="VARCHAR2(1)",nulls_allowed=no)
COLUMN(type=varchar,name="ISDEAL",dbtype="VARCHAR2(1)",nulls_allowed=no)
COLUMN(type=varchar,name="FIRSTFIELD_TYPE",dbtype="VARCHAR2(1)",nulls_allowed=no)
COLUMN(type=varchar,name="ISFILTER",dbtype="VARCHAR2(1)",nulls_allowed=no))
RETRIEVE(statement="PBSELECT(TABLE(NAME=~"SWIBS.T_FILE~") COLUMN(NAME=~"SWIBS.T_FILE.ID~")COLUMN(NAME=~"SWIBS.T_FILE.SYSTEM_ID~")COLUMN(NAME=~"SWIBS.T_FILE.ENAME~")COLUMN(NAME=~"SWIBS.T_FILE.CNAME~")COLUMN(NAME=~"SWIBS.T_FILE.AENAME~")COLUMN(NAME=~"SWIBS.T_FILE.ACNAME~")COLUMN(NAME=~"SWIBS.T_FILE.FILETYPE~")COLUMN(NAME=~"SWIBS.T_FILE.ISDEAL~")COLUMN(NAME=~"SWIBS.T_FILE.FIRSTFIELD_TYPE~")COLUMN(NAME=~"SWIBS.T_FILE.ISFILTER~"))")
DESTINATION(name="CS2002.T_FILE",COLUMN(type=varchar,name="ID",dbtype="VARCHAR2(5)",key=yes,nulls_allowed=no,initial_value="https://bbs.csdn.net/topics/spaces")
COLUMN(type=varchar,name="SYSTEM_ID",dbtype="VARCHAR2(5)",nulls_allowed=no,initial_value="https://bbs.csdn.net/topics/spaces")
COLUMN(type=varchar,name="ENAME",dbtype="VARCHAR2(50)",nulls_allowed=no,initial_value="https://bbs.csdn.net/topics/spaces")
COLUMN(type=varchar,name="CNAME",dbtype="VARCHAR2(500)",nulls_allowed=no,initial_value="https://bbs.csdn.net/topics/spaces")
COLUMN(type=varchar,name="AENAME",dbtype="VARCHAR2(50)",nulls_allowed=yes)
COLUMN(type=varchar,name="ACNAME",dbtype="VARCHAR2(50)",nulls_allowed=yes)
COLUMN(type=varchar,name="FILETYPE",dbtype="VARCHAR2(1)",nulls_allowed=no,initial_value="https://bbs.csdn.net/topics/spaces")
COLUMN(type=varchar,name="ISDEAL",dbtype="VARCHAR2(1)",nulls_allowed=no,initial_value="https://bbs.csdn.net/topics/spaces")
COLUMN(type=varchar,name="FIRSTFIELD_TYPE",dbtype="VARCHAR2(1)",nulls_allowed=no,initial_value="https://bbs.csdn.net/topics/spaces")
COLUMN(type=varchar,name="ISFILTER",dbtype="VARCHAR2(1)",nulls_allowed=no,initial_value="https://bbs.csdn.net/topics/spaces"))
在開始創建這個資料管道的時候就已經定好了源和目標資料庫了
后來雖然改了transaction i_src,i_dst的取值,但是不起作用,會抱源資料庫錯誤.
怎么樣建立資料管道可以直接修改transaction i_src,i_dst的取值就改變資料管道的源和目的資料庫呢
謝謝~
uj5u.com熱心網友回復:
我在資料管道那里點edit source 如下:PIPELINE(source_connect=maps,destination_connect=cs2002,type=refresh,commit=100,errors=100,keyname="T_FILE")
SOURCE(name="T_FILE",COLUMN(type=varchar,name="ID",dbtype="VARCHAR2(5)",key=yes,nulls_allowed=no)
COLUMN(type=varchar,name="SYSTEM_ID",dbtype="VARCHAR2(5)",nulls_allowed=no)
COLUMN(type=varchar,name="ENAME",dbtype="VARCHAR2(50)",nulls_allowed=no)
COLUMN(type=varchar,name="CNAME",dbtype="VARCHAR2(50)",nulls_allowed=no)
COLUMN(type=varchar,name="AENAME",dbtype="VARCHAR2(50)",nulls_allowed=yes)
COLUMN(type=varchar,name="ACNAME",dbtype="VARCHAR2(50)",nulls_allowed=yes)
COLUMN(type=varchar,name="FILETYPE",dbtype="VARCHAR2(1)",nulls_allowed=no)
COLUMN(type=varchar,name="ISDEAL",dbtype="VARCHAR2(1)",nulls_allowed=no)
COLUMN(type=varchar,name="FIRSTFIELD_TYPE",dbtype="VARCHAR2(1)",nulls_allowed=no)
COLUMN(type=varchar,name="ISFILTER",dbtype="VARCHAR2(1)",nulls_allowed=no))
RETRIEVE(statement="PBSELECT(TABLE(NAME=~"SWIBS.T_FILE~") COLUMN(NAME=~"SWIBS.T_FILE.ID~")COLUMN(NAME=~"SWIBS.T_FILE.SYSTEM_ID~")COLUMN(NAME=~"SWIBS.T_FILE.ENAME~")COLUMN(NAME=~"SWIBS.T_FILE.CNAME~")COLUMN(NAME=~"SWIBS.T_FILE.AENAME~")COLUMN(NAME=~"SWIBS.T_FILE.ACNAME~")COLUMN(NAME=~"SWIBS.T_FILE.FILETYPE~")COLUMN(NAME=~"SWIBS.T_FILE.ISDEAL~")COLUMN(NAME=~"SWIBS.T_FILE.FIRSTFIELD_TYPE~")COLUMN(NAME=~"SWIBS.T_FILE.ISFILTER~"))")
DESTINATION(name="CS2002.T_FILE",COLUMN(type=varchar,name="ID",dbtype="VARCHAR2(5)",key=yes,nulls_allowed=no,initial_value="https://bbs.csdn.net/topics/spaces")
COLUMN(type=varchar,name="SYSTEM_ID",dbtype="VARCHAR2(5)",nulls_allowed=no,initial_value="https://bbs.csdn.net/topics/spaces")
COLUMN(type=varchar,name="ENAME",dbtype="VARCHAR2(50)",nulls_allowed=no,initial_value="https://bbs.csdn.net/topics/spaces")
COLUMN(type=varchar,name="CNAME",dbtype="VARCHAR2(500)",nulls_allowed=no,initial_value="https://bbs.csdn.net/topics/spaces")
COLUMN(type=varchar,name="AENAME",dbtype="VARCHAR2(50)",nulls_allowed=yes)
COLUMN(type=varchar,name="ACNAME",dbtype="VARCHAR2(50)",nulls_allowed=yes)
COLUMN(type=varchar,name="FILETYPE",dbtype="VARCHAR2(1)",nulls_allowed=no,initial_value="https://bbs.csdn.net/topics/spaces")
COLUMN(type=varchar,name="ISDEAL",dbtype="VARCHAR2(1)",nulls_allowed=no,initial_value="https://bbs.csdn.net/topics/spaces")
COLUMN(type=varchar,name="FIRSTFIELD_TYPE",dbtype="VARCHAR2(1)",nulls_allowed=no,initial_value="https://bbs.csdn.net/topics/spaces")
COLUMN(type=varchar,name="ISFILTER",dbtype="VARCHAR2(1)",nulls_allowed=no,initial_value="https://bbs.csdn.net/topics/spaces"))
在開始創建這個資料管道的時候就已經定好了源和目標資料庫了
后來雖然改了transaction i_src,i_dst的取值,但是不起作用,會抱源資料庫錯誤.
怎么樣建立資料管道可以直接修改transaction i_src,i_dst的取值就改變資料管道的源和目的資料庫呢
謝謝~
uj5u.com熱心網友回復:
我的方法是(簡單點的):思路:
1. 創建一個pipeline
2. 將你的管道名賦給dataobject
3. 此時從管道屬性syntax中獲取管道的script 腳本
4. 修改此腳本
5. 給pipeline重新付上修改后的腳本
6. 執行此管道就可以了
syntaxpipeline lp_pipe
string ls_syntax
lp_pipe = create pipeline
lp_pipe.dataobject = '你的資料管道名'
ls_syntax = lp_pipe.syntax
ls_syntax = 'PIPELINE (source_connect=maps,destination_connect=cs2002,type=refresh,commit=100,errors=100,keyname="T_FILE")
SOURCE(name="T_FILE",COLUMN(type=varchar,name="ID",dbtype="VARCHAR2(5
修改此字串后,重新賦值
ls_syntax = left(, .... )
lp_pipe.syntax = ls_syntax
執行就行了
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/104916.html
標籤:數據庫相關
