鼎新如是說,所購買的 Genero 其實不含升級的費用,也就是說目前的版本 你不可能升級
也就是說 Oracle 的版本也不能升級 (Genero中會設定支援的 Oracle 版本)
其實只要設備足夠,是有辦法自行升級的....
但是還要進一步做完整的測試 確認 TIPTOP 的穩定度
新的版本從哪邊拿? http://www.4js.com/en/download/test-drive 註冊完就能下載
本區發表的原創程式本人皆擁有著作權,未經授權不得使用。 所有貼出的程式畫面展示,原始程式碼都可以出售~請mail: darrenshen2008@gmail.com 版權聲明:TIPTOP的版權是鼎新電腦股份有限公司所有
2011年12月29日 星期四
run Genero at Ubuntu
官方的說法是 支援 Redhat, SUSE
http://www.4js.com/online_documentation/fjs-gep-2.32.24-manual-install-html/?path=fjs-gep-2.32.24-manual-install
其實 也能在 ubuntu 執行
http://www.4js.com/online_documentation/fjs-gep-2.32.24-manual-install-html/?path=fjs-gep-2.32.24-manual-install
其實 也能在 ubuntu 執行
trim 字串的範例
main
define a string
define b varchar(20)
let a="1234567890"
display a
let b=ccl_trim(a)
display b
let b=' 09876543 '
let a=ccl_trim(b)
display a
let a=" abcde"
display ccl_trim(a)
end main
function ccl_trim(p_str)
define p_str string
define l_str base.StringBuffer
let l_str=base.StringBuffer.create()
call l_str.append(p_str)
call l_str.trim()
return l_str.tostring()
end function
2011年9月29日 星期四
2011年7月28日 星期四
TIPTOP 的報表好伴侶- Smart Query
TIPTOP 的報表委外客製幾乎都是10小時起跳,因為 Crystal Report 報表的版面設計很花時間。推薦使用 SmartQuery 來設計相關報表,這樣會有甚麼好處呢?
1.部分User不輸入資料,只是單純的報表查詢 。所以,不需要浪費 TIPTOP的 License 數量(=Genero License + TIPTOP License)
2.SmqrtQuery 報表設計工具,做報表超級快的,開發速度至少會是 Ctystal Report 報表開發的兩倍以上速度
後記: 8/24-8/25 上完 SmartQuery 的進階課程之後,才發現,這報表的功能之強大超出我原先的想像,可是目前跟TIPTOP有SSO (Single SingOn) 整合上的問題,我已經把意見提供給講師,今天還會發個正式的郵件詳細說明,如果這個整合功能做到,那麼廢除 Crystal Report 主機只是早晚的問題。
相關資料請參考 http://www.lcnet.com.tw/KnowHow.htm
有興趣可以直接找 Vincent ,他的服務很好,可以提供協助進行測試及提供報價的服務
1.部分User不輸入資料,只是單純的報表查詢 。所以,不需要浪費 TIPTOP的 License 數量(=Genero License + TIPTOP License)
2.SmqrtQuery 報表設計工具,做報表超級快的,開發速度至少會是 Ctystal Report 報表開發的兩倍以上速度
後記: 8/24-8/25 上完 SmartQuery 的進階課程之後,才發現,這報表的功能之強大超出我原先的想像,可是目前跟TIPTOP有SSO (Single SingOn) 整合上的問題,我已經把意見提供給講師,今天還會發個正式的郵件詳細說明,如果這個整合功能做到,那麼廢除 Crystal Report 主機只是早晚的問題。
相關資料請參考 http://www.lcnet.com.tw/KnowHow.htm
有興趣可以直接找 Vincent ,他的服務很好,可以提供協助進行測試及提供報價的服務
蘇憲寧 Vincent │ 台北市忠孝東路5段508號19F之2 │ 02-27260885#227 │ Mobile: 0937-472068
聯銓資訊科技有限公司 Smart eVision Information Technology Inc. │ http://www.lcnet.com.tw/global/
聯銓資訊科技有限公司 Smart eVision Information Technology Inc. │ http://www.lcnet.com.tw/global/
2011年5月27日 星期五
2011年5月26日 星期四
單一BU 對同一客戶有不同的收款條件的客製
昨天去參加鼎新IFRS 其他公司的經驗分享。聽完該公司主管的說明,我只想說,你們碰到的問題,我都開發處理完成了。我們做到的,比你們碰到的多很多。
他們其中一個問題是,如果不同BU 有不同的收款條件要如何處理?
我們是同一BU ,不同產品線有不同的收款條件,都做完了。
他們其中一個問題是,如果不同BU 有不同的收款條件要如何處理?
我們是同一BU ,不同產品線有不同的收款條件,都做完了。
2011年5月2日 星期一
2011年4月28日 星期四
2011年4月26日 星期二
TIPTOP License 計算的 bug
A.使用 fglWrt -a info users 可以查到 Genero 的 License
B.使用 exe2 p_go 可以查看TIPTOP License 數量
當 B 的數量大於 A的數量,這是不可能的事嗎?
其實是 ...Jack 來看 Rose 啦~XD~
產中的 bug --Darren 教你來解。把 gbq_file 清光就可以了
這還有其他地方在計算 TIPTOP License 嗎?
當然有 ~XD~
可以客製嗎? ~當然能~
B.使用 exe2 p_go 可以查看TIPTOP License 數量
當 B 的數量大於 A的數量,這是不可能的事嗎?
其實是 ...Jack 來看 Rose 啦~XD~
產中的 bug --Darren 教你來解。把 gbq_file 清光就可以了
這還有其他地方在計算 TIPTOP License 嗎?
當然有 ~XD~
可以客製嗎? ~當然能~
2011年4月22日 星期五
Oracle 建 view Genero / TIPTOP 程式抓不到 oracle view 的資料
我不知道有沒有人問過 該開發公司這樣的問題?
至少我們就有,詢問該公司客服,客服的回覆是,目前 GP 5.1 的版本做不到
我不知道該公司客服的答案是從那裡來的? 至少 我們第一任客服是這樣跟我們說
江湖一點訣,乖,Darren 無私的教你
用 TIPTOP 在 Oracle 建 view 記得,除了 你要抓資料的 db 要建 view 之外,'ds' 那邊也要建 view,建立完成之後,記得要執行
r.s2 ds
然後程式就抓得到你建的 view 了
有沒有...xxx 的感覺
至少我們就有,詢問該公司客服,客服的回覆是,目前 GP 5.1 的版本做不到
我不知道該公司客服的答案是從那裡來的? 至少 我們第一任客服是這樣跟我們說
江湖一點訣,乖,Darren 無私的教你
用 TIPTOP 在 Oracle 建 view 記得,除了 你要抓資料的 db 要建 view 之外,'ds' 那邊也要建 view,建立完成之後,記得要執行
r.s2 ds
然後程式就抓得到你建的 view 了
有沒有...xxx 的感覺
2011年4月19日 星期二
g_user 的記錄不夠詳細?
有人覺得 g_user 記錄不夠明確嗎?
沒關係 照過來~~~~
年月日/時間, 還有 用那個 windows 帳號,在哪一台電腦登入,用那個 tiptop帳號 通通一清二楚。
source code 出售~
沒關係 照過來~~~~
年月日/時間, 還有 用那個 windows 帳號,在哪一台電腦登入,用那個 tiptop帳號 通通一清二楚。
source code 出售~
TIPTOP/ Genero 4gl 直接抓取 中央銀行 每日收盤匯率資料
不需要用到 java 直接寫 4gl 抓取
中央銀行的收盤匯率網址
http://www.cbc.gov.tw/lp.asp?CtNode=645&CtUnit=308&BaseDSD=32&mp=1
程式的執行畫面
海關三旬匯率?
我怎麼知道有沒有成功?
中央銀行的收盤匯率網址
http://www.cbc.gov.tw/lp.asp?CtNode=645&CtUnit=308&BaseDSD=32&mp=1
程式的執行畫面
海關三旬匯率?
我怎麼知道有沒有成功?
2011年1月12日 星期三
[轉] oracle的文本导入、导出技巧(参照informix的load,unload)
資料來源: http://www.wangchao.net.cn/bbsdetail_1417714.html
在使用oracle时,总觉得oracle的导入,导出没有informix的load,unload好用,没办法,只能参照网上朋友的思路和informix的实现,写了几个脚本,希望各位高手指点:
=============================================
工具用法:
unload.sh
Usage: unload.sh userid/passwd[@oraclesid] [tabname]
注释:
如果不加’@oraclesid’,则用当前环境变量ORACLE_SID。
如果不加tabname参数,则处理该用户下的所有表,生成’表名.unl’文件。
如果加tabname参数,则单独处理该表,生成’表名.unl’文件。
load.sh
Usage: load.sh userid/passwd[@oraclesid] [tabname]
注释:
如果不加’@oraclesid’,则用当前环境变量ORACLE_SID。
如果不加tabname参数,则装载该用户下的所有表,必须存在’表名.unl’
文件。
如果加tabname参数,则单独处理该表,必须存在’表名.unl’文件。
=============================================
具体实现:
unload.sh
利用spool的功能,将表中的数据导出到对应的文本中。
load.sh
利用sql*load的功能,将文本中的数据导入到表中。
控制文件是自动生成的,使用者不需要知道格式
执行sqlload的脚本也是自动生成
generate_control_file.sh
生成控制文件
generate_execute_shell.sh
生成执行脚本
=============================================
代码说明
oad.sh
#!/usr/bin/ksh
################################################################################
#
# 模块: load.sh
#
# 描述: 根据一个数据库或表名来装载对应的数据文件
#
# 参数 1 = 用户名/密码[@实例名]
# 参数 2 = 表名(可选)
#
# 作者 Bing He
#
# 修改记录
# 日期 修改人 修改描述
#
# 09/23/2003 Bing He 开始编写
#
################################################################################
lv_temp1="wk.test1"
f_get_tables()
{
rm -f ${lv_temp1}
sqlplus ${userid} <<! >/dev/null
set colsep $sep;
set echo off;
set feedback off;
set heading off;
set pagesize 0;
set linesize 1000;
set numwidth 12;
set termout off;
set trimout on;
set trimspool on;
spool ${lv_temp1};
select table_name from user_tables;
spool off;
exit
!
if [ "$?" -ne 0 ]
then
echo "Error:sqlplus ${userid} error in load for ${userid} !"
echo "please check userid and passwd or oracle_sid."
exit
fi
if [ -f ${lv_temp1} ]
then
lv_tables=`cat ${lv_temp1} |grep -v "^SQL>" | tr -d ' '`
else
echo "Error:${lv_temp1} file not found!"
exit
fi
rm -f ${lv_temp1}
}
################################################################################
## 主程序入口
lv_no=$#
case ${lv_no} in
1
userid=$1
f_get_tables;
;;
2
userid=$1
lv_tables=$2
;;
*
echo "Usage: $0 <userid/passwd[@connection]> <table_name>"
exit
;;
esac
for lv_table in ${lv_tables}
do
if [ ! -f ${lv_table}.unl ]
then
echo "Error:${lv_table}.unl file not found!"
else
generate_control_file.sh ${userid} ${lv_table}
generate_execute_shell.sh ${userid} ${lv_table}
sh load_${lv_table}.sh
rm -f ${lv_table}.ctl
rm -f load_${lv_table}.sh
fi
done
################################################################################
unload.sh
#!/usr/bin/ksh
################################################################################
#
# 模块: unload.sh
#
# 描述: 根据一个数据库或表名来卸载数据并生成对应的数据文件
#
# 参数 1 = 用户名/密码[@实例名]
# 参数 2 = 表名(可选)
#
# 作者 Bing He
#
# 修改记录
# 日期 修改人 修改描述
#
# 09/23/2003 Bing He 开始编写
#
################################################################################
lv_sep='|' # --分隔符,可以修改成自己想要的分隔符,如'|'
lv_temp1="unload.temp1"
f_get_tables()
{
rm -f ${lv_temp1}
sqlplus ${userid} <<! >/dev/null
set colsep ${lv_sep};
set echo off;
set feedback off;
set heading off;
set pagesize 0;
set linesize 1000;
set numwidth 12;
set termout off;
set trimout on;
set trimspool on;
spool ${lv_temp1};
select table_name from user_tables;
spool off;
exit
!
if [ "$?" -ne 0 ] ; then
echo "sqlplus $userid error in get table name <"$?">!!"
echo "please check userid and passwd or database."
exit
fi
if [ -f ${lv_temp1} ]
then
lv_tables=`cat ${lv_temp1} |grep -v "^SQL>" | tr -d ' '`
else
echo "Error:${lv_temp1} file not found!"
exit
fi
rm -f ${lv_temp1}
}
################################################################
## 主程序入口
lv_no=$#
case ${lv_no} in
1
userid=$1
f_get_tables;
;;
2
userid=$1
lv_tables=$2
;;
*
echo "Usage: $0 <userid/passwd[@connection]> <table_name>"
exit
;;
esac
################################################################
################################################################
## 执行下载操作
for table in ${lv_tables}
do
rm -f lv_$table.txt
sqlplus ${userid} <<! >/dev/null
set colsep ${lv_sep};
set echo off;
set feedback off;
set heading off;
set pagesize 0;
set linesize 1000;
set numwidth 12;
set termout off;
set trimout on;
set trimspool on;
spool lv_$table.txt;
select * from $table;
spool off;
!
if [ "$?" -ne 0 ]
then
echo "error:sqlplus $userid error in unload table $table!!"
echo "please check userid and passwd or database."
exit
fi
if [ -f lv_$table.txt ]
then
cat lv_$table.txt | grep -v "^SQL>"|sed -e "s/ *$//g"|sed "s/$/\|/g"|sed -e "s/ *\|/\|/g" >${table}.unl
if [[ `grep "ORA-" $table.unl` = "" ]]; then
echo "unload table ${table}....\t\t\t\t\t ok"
else
cat ${table}.unl
err="$err ${table}"
fi
else
echo $0 error
fi
rm -f lv_$table.txt
done
################################################################
################################################################
## 结束操作
if [[ "X$err" = "X" ]];then
echo "Unload Complete!,Thank you!"
else
echo "Unload Table $err error, please check it!"
fi
################################################################
generate_control_file.sh
#!/usr/bin/ksh
################################################################################
#
# 模块: generate_control_file.sh
#
# 描述: 根据一个表名生成该表的控制文件
#
# 参数 1 = 用户名/密码[@实例名]
# 参数 2 = 表名
#
# 作者 Bing He
#
# 修改记录
# 日期 修改人 修改描述
#
# 09/23/2003 Bing He 开始编写
#
################################################################################
################################################################################
## 主程序入口
if [ ! $# -eq 2 ]
then
echo "Usage: $0 <userid/passwd[@connection]> <table_name>"
exit
else
userid=$1
table=$2
fi
################################################################################
################################################################################
## 执行下载操作
lv_temp="wk_${table}.test"
lv_temp1="wk_${table}.test1"
lv_temp2="wk_${table}.test2"
lv_control="${table}.ctl"
sqlplus ${userid} <<! >/dev/null
spool ${lv_temp};
desc ${table}
spool off;
exit
!
if [ "$?" -ne 0 ]
then
echo "Error:sqlplus ${userid} error in generate control file for table ${table} !"
echo "please check userid and passwd or oracle_sid."
exit
fi
if [ -f ${lv_temp} ]
then
cat ${lv_temp}|grep -v "^SQL>" |grep -v " Name " |grep -v " -------" |awk '{print $1}' > ${lv_temp1}
lv_line_num=`cat ${lv_temp1} | wc -l`
lv_line_num=`expr ${lv_line_num} - 2`
lv_index=0
rm -f ${lv_temp2}
for lineinfo in `cat ${lv_temp1}`
do
if [ ${lv_index} -eq ${lv_line_num} ]
then
echo "${lineinfo}" >> ${lv_temp2}
else
echo "${lineinfo}," >> ${lv_temp2}
lv_index=`expr ${lv_index} + 1`
fi
done
else
echo "$0 error :not find ${lv_temp} file."
exit
fi
lv_str="LOAD DATA INFILE '${table}.unl' BADFILE 'bad_${table}.bad' APPEND INTO TABLE ${table} FIELDS TERMINATEd BY "|""
echo ${lv_str} > ${lv_control}
echo "(" >> ${lv_control}
cat ${lv_temp2} >> ${lv_control}
echo ")" >> ${lv_control}
rm -f ${lv_temp}
rm -f ${lv_temp1}
rm -f ${lv_temp2}
################################################################################
generate_execute_shell.sh
#!/usr/bin/ksh
################################################################################
#
# 模块: generate_execute_shell.sh
#
# 描述: 根据一个表名生成该表的装载脚本
#
# 参数 1 = 用户名/密码[@实例名]
# 参数 2 = 表名
#
# 作者 Bing He
#
# 修改记录
# 日期 修改人 修改描述
#
# 09/23/2003 Bing He 开始编写
#
################################################################################
################################################################################
## 主程序入口
if [ ! $# -eq 2 ]
then
echo "Usage: $0 <userid/passwd[@connection]> <table_name>"
exit
else
userid=$1
table=$2
fi
################################################################################
################################################################################
## 局部变量定义区域
lv_rows=10000
lv_bindsize=8192000
lv_readsize=8192000
################################################################################
################################################################################
## 生成执行脚本文件
echo "sqlldr ${userid} control=${table}.ctl rows=${lv_rows} bindsize=${lv_bindsize} readsize=${lv_readsize} log=log_${table}.log bad=bad_${table}.bad direct=true" > load_${table}.sh
###############################################################################
在使用oracle时,总觉得oracle的导入,导出没有informix的load,unload好用,没办法,只能参照网上朋友的思路和informix的实现,写了几个脚本,希望各位高手指点:
=============================================
工具用法:
unload.sh
Usage: unload.sh userid/passwd[@oraclesid] [tabname]
注释:
如果不加’@oraclesid’,则用当前环境变量ORACLE_SID。
如果不加tabname参数,则处理该用户下的所有表,生成’表名.unl’文件。
如果加tabname参数,则单独处理该表,生成’表名.unl’文件。
load.sh
Usage: load.sh userid/passwd[@oraclesid] [tabname]
注释:
如果不加’@oraclesid’,则用当前环境变量ORACLE_SID。
如果不加tabname参数,则装载该用户下的所有表,必须存在’表名.unl’
文件。
如果加tabname参数,则单独处理该表,必须存在’表名.unl’文件。
=============================================
具体实现:
unload.sh
利用spool的功能,将表中的数据导出到对应的文本中。
load.sh
利用sql*load的功能,将文本中的数据导入到表中。
控制文件是自动生成的,使用者不需要知道格式
执行sqlload的脚本也是自动生成
generate_control_file.sh
生成控制文件
generate_execute_shell.sh
生成执行脚本
=============================================
代码说明
oad.sh
#!/usr/bin/ksh
################################################################################
#
# 模块: load.sh
#
# 描述: 根据一个数据库或表名来装载对应的数据文件
#
# 参数 1 = 用户名/密码[@实例名]
# 参数 2 = 表名(可选)
#
# 作者 Bing He
#
# 修改记录
# 日期 修改人 修改描述
#
# 09/23/2003 Bing He 开始编写
#
################################################################################
lv_temp1="wk.test1"
f_get_tables()
{
rm -f ${lv_temp1}
sqlplus ${userid} <<! >/dev/null
set colsep $sep;
set echo off;
set feedback off;
set heading off;
set pagesize 0;
set linesize 1000;
set numwidth 12;
set termout off;
set trimout on;
set trimspool on;
spool ${lv_temp1};
select table_name from user_tables;
spool off;
exit
!
if [ "$?" -ne 0 ]
then
echo "Error:sqlplus ${userid} error in load for ${userid} !"
echo "please check userid and passwd or oracle_sid."
exit
fi
if [ -f ${lv_temp1} ]
then
lv_tables=`cat ${lv_temp1} |grep -v "^SQL>" | tr -d ' '`
else
echo "Error:${lv_temp1} file not found!"
exit
fi
rm -f ${lv_temp1}
}
################################################################################
## 主程序入口
lv_no=$#
case ${lv_no} in
1
userid=$1
f_get_tables;
;;
2
userid=$1
lv_tables=$2
;;
*
echo "Usage: $0 <userid/passwd[@connection]> <table_name>"
exit
;;
esac
for lv_table in ${lv_tables}
do
if [ ! -f ${lv_table}.unl ]
then
echo "Error:${lv_table}.unl file not found!"
else
generate_control_file.sh ${userid} ${lv_table}
generate_execute_shell.sh ${userid} ${lv_table}
sh load_${lv_table}.sh
rm -f ${lv_table}.ctl
rm -f load_${lv_table}.sh
fi
done
################################################################################
unload.sh
#!/usr/bin/ksh
################################################################################
#
# 模块: unload.sh
#
# 描述: 根据一个数据库或表名来卸载数据并生成对应的数据文件
#
# 参数 1 = 用户名/密码[@实例名]
# 参数 2 = 表名(可选)
#
# 作者 Bing He
#
# 修改记录
# 日期 修改人 修改描述
#
# 09/23/2003 Bing He 开始编写
#
################################################################################
lv_sep='|' # --分隔符,可以修改成自己想要的分隔符,如'|'
lv_temp1="unload.temp1"
f_get_tables()
{
rm -f ${lv_temp1}
sqlplus ${userid} <<! >/dev/null
set colsep ${lv_sep};
set echo off;
set feedback off;
set heading off;
set pagesize 0;
set linesize 1000;
set numwidth 12;
set termout off;
set trimout on;
set trimspool on;
spool ${lv_temp1};
select table_name from user_tables;
spool off;
exit
!
if [ "$?" -ne 0 ] ; then
echo "sqlplus $userid error in get table name <"$?">!!"
echo "please check userid and passwd or database."
exit
fi
if [ -f ${lv_temp1} ]
then
lv_tables=`cat ${lv_temp1} |grep -v "^SQL>" | tr -d ' '`
else
echo "Error:${lv_temp1} file not found!"
exit
fi
rm -f ${lv_temp1}
}
################################################################
## 主程序入口
lv_no=$#
case ${lv_no} in
1
userid=$1
f_get_tables;
;;
2
userid=$1
lv_tables=$2
;;
*
echo "Usage: $0 <userid/passwd[@connection]> <table_name>"
exit
;;
esac
################################################################
################################################################
## 执行下载操作
for table in ${lv_tables}
do
rm -f lv_$table.txt
sqlplus ${userid} <<! >/dev/null
set colsep ${lv_sep};
set echo off;
set feedback off;
set heading off;
set pagesize 0;
set linesize 1000;
set numwidth 12;
set termout off;
set trimout on;
set trimspool on;
spool lv_$table.txt;
select * from $table;
spool off;
!
if [ "$?" -ne 0 ]
then
echo "error:sqlplus $userid error in unload table $table!!"
echo "please check userid and passwd or database."
exit
fi
if [ -f lv_$table.txt ]
then
cat lv_$table.txt | grep -v "^SQL>"|sed -e "s/ *$//g"|sed "s/$/\|/g"|sed -e "s/ *\|/\|/g" >${table}.unl
if [[ `grep "ORA-" $table.unl` = "" ]]; then
echo "unload table ${table}....\t\t\t\t\t ok"
else
cat ${table}.unl
err="$err ${table}"
fi
else
echo $0 error
fi
rm -f lv_$table.txt
done
################################################################
################################################################
## 结束操作
if [[ "X$err" = "X" ]];then
echo "Unload Complete!,Thank you!"
else
echo "Unload Table $err error, please check it!"
fi
################################################################
generate_control_file.sh
#!/usr/bin/ksh
################################################################################
#
# 模块: generate_control_file.sh
#
# 描述: 根据一个表名生成该表的控制文件
#
# 参数 1 = 用户名/密码[@实例名]
# 参数 2 = 表名
#
# 作者 Bing He
#
# 修改记录
# 日期 修改人 修改描述
#
# 09/23/2003 Bing He 开始编写
#
################################################################################
################################################################################
## 主程序入口
if [ ! $# -eq 2 ]
then
echo "Usage: $0 <userid/passwd[@connection]> <table_name>"
exit
else
userid=$1
table=$2
fi
################################################################################
################################################################################
## 执行下载操作
lv_temp="wk_${table}.test"
lv_temp1="wk_${table}.test1"
lv_temp2="wk_${table}.test2"
lv_control="${table}.ctl"
sqlplus ${userid} <<! >/dev/null
spool ${lv_temp};
desc ${table}
spool off;
exit
!
if [ "$?" -ne 0 ]
then
echo "Error:sqlplus ${userid} error in generate control file for table ${table} !"
echo "please check userid and passwd or oracle_sid."
exit
fi
if [ -f ${lv_temp} ]
then
cat ${lv_temp}|grep -v "^SQL>" |grep -v " Name " |grep -v " -------" |awk '{print $1}' > ${lv_temp1}
lv_line_num=`cat ${lv_temp1} | wc -l`
lv_line_num=`expr ${lv_line_num} - 2`
lv_index=0
rm -f ${lv_temp2}
for lineinfo in `cat ${lv_temp1}`
do
if [ ${lv_index} -eq ${lv_line_num} ]
then
echo "${lineinfo}" >> ${lv_temp2}
else
echo "${lineinfo}," >> ${lv_temp2}
lv_index=`expr ${lv_index} + 1`
fi
done
else
echo "$0 error :not find ${lv_temp} file."
exit
fi
lv_str="LOAD DATA INFILE '${table}.unl' BADFILE 'bad_${table}.bad' APPEND INTO TABLE ${table} FIELDS TERMINATEd BY "|""
echo ${lv_str} > ${lv_control}
echo "(" >> ${lv_control}
cat ${lv_temp2} >> ${lv_control}
echo ")" >> ${lv_control}
rm -f ${lv_temp}
rm -f ${lv_temp1}
rm -f ${lv_temp2}
################################################################################
generate_execute_shell.sh
#!/usr/bin/ksh
################################################################################
#
# 模块: generate_execute_shell.sh
#
# 描述: 根据一个表名生成该表的装载脚本
#
# 参数 1 = 用户名/密码[@实例名]
# 参数 2 = 表名
#
# 作者 Bing He
#
# 修改记录
# 日期 修改人 修改描述
#
# 09/23/2003 Bing He 开始编写
#
################################################################################
################################################################################
## 主程序入口
if [ ! $# -eq 2 ]
then
echo "Usage: $0 <userid/passwd[@connection]> <table_name>"
exit
else
userid=$1
table=$2
fi
################################################################################
################################################################################
## 局部变量定义区域
lv_rows=10000
lv_bindsize=8192000
lv_readsize=8192000
################################################################################
################################################################################
## 生成执行脚本文件
echo "sqlldr ${userid} control=${table}.ctl rows=${lv_rows} bindsize=${lv_bindsize} readsize=${lv_readsize} log=log_${table}.log bad=bad_${table}.bad direct=true" > load_${table}.sh
###############################################################################
訂閱:
文章 (Atom)
















