2013年10月10日 星期四

CentOS 安裝 tiptop

一次不小心的意外中,才發現,原來我之前的TIPTOP測試版本是安裝在 CentOS 作業系統上

cat /etc/redhat-release


所以,其實不一定要買 Linux 作業系統的,因為
1. 作業系統不能升級
2. 既然升級可能就沒有需要購買作業系統的維護合約
3.如果沒有購買維護合約,作業系統的安全漏洞或是bug patch 就沒法安裝


CentOS server 是免費的作業系統,所以,.......

2013年6月10日 星期一

關於圖片遺失的情形

關於圖片遺失的情形,我正在想辦法跟 Google 反應中,需要時間等待他們處理。

另外,我新建立一個 Android 的經驗分享部落格
http://darren-android.blogspot.tw/

目前會逐步地把文章加入,歡迎參觀

2012年12月11日 星期二

關於 CentOs

引自維基百科 http://zh.wikipedia.org/zh-hk/CentOS

CentOSCommunity Enterprise Operating System)是Linux發行版之一,它是來自於Red Hat Enterprise Linux依照開放源碼規定釋出的原始碼所編譯而成。由於出自同樣的原始碼,因此有些要求高度穩定性的伺服器以CentOS替代商業版的Red Hat Enterprise Linux使用。兩者的不同,在於CentOS並不包含封閉原始碼軟件。

安裝 TIPTOP 需要買付費的 Unix 或 Linux 系統嗎?
如果公司規模不大,其實使用 CentOS 這個免費的作業系統也是非常OK 的.

依據官方的消息( http://wiki.centos.org/zh-tw/FrontPage?action=show&redirect=zh-tw )
CentOS 是一個基於重建 Red Hat 企業級 Linux 提供的可自由使用的源代碼而成的企業級 Linux 發行版本。此重建過程嘗試移除相關的商標圖案及對二進制程式更新網絡作出少量改動,但它普遍與上游產品有相同表現,甚至乎連未經修正的錯誤都有同樣特性。每個版本的 CentOS 都會獲得長達十年的支援(通過安全更新 —— 支援期的長短視乎上游的源代碼套件發行政策改動而會有所變更)。新版本的 CentOS 大約每兩年發行一次,而每個版本的 CentOS 更會定期(大概每六個月)更新一次,以便支援新的硬件。這樣,建立一個安全、低維護、穩定、高預測性、高重複性的 Linux 環境。

CentOS 其實是可以穩定使用的。
  

2012年2月8日 星期三

TIPTOP 用戶要有升級 Genero 版本的權利 (2)

這是我測試自己升級後的版本,鼎新不給新版本的開發工具就自己做












為何要升級?
因為Genero 的開發程式持續增加新的功能(例如: HTML5),如果開發工具無法升級,也就是說,這套ERP 就無法使用開發工具提供的新功能,換句話說,就是等著汰換。公司花了很多的人力物力來開發客製 ERP 目的就是希望公司的作業流程跟 ERP 緊密結合增加公司的整體作業效率,如果這些花下去的資源,只是等著汰換?值得投入很多資源嗎?

2011年12月29日 星期四

TIPTOP 用戶要有升級 Genero 版本的權利

鼎新如是說,所購買的 Genero 其實不含升級的費用,也就是說目前的版本 你不可能升級

也就是說 Oracle 的版本也不能升級 (Genero中會設定支援的 Oracle 版本)

其實只要設備足夠,是有辦法自行升級的....

但是還要進一步做完整的測試  確認 TIPTOP 的穩定度

新的版本從哪邊拿? http://www.4js.com/en/download/test-drive  註冊完就能下載

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 執行


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

用 select 寫 九九乘法表


with a as 
 (select level x
    from dual 
  connect by level <= 9), 
b as
(select level y 
    from dual 
  connect by level <= 9)

select x,y,x*y from a,b
order by x,y ;

2011年9月13日 星期二

再讚 Smart Query

測試了約兩星期,寫了些報表
1.基本資料的檢查報表
2.經營分析的統計報表

感言是~任何想得出來的報表都是可能的~~~讚啦.

2011年9月1日 星期四

Smart Query 的 TIPTOP 資料字典

TIPTOP上的欄位那麼多,設計要一個個修改中文說明會粉累,所以,需要直接轉入到 Smart Query的資料字典。 

提供以下的 SQL 來幫忙轉出


select TABLE_NAME,gat03,COLUMN_NAME,GAQ03,DATA_LENGTH
FROM ALL_TAB_COLUMNS,GAQ_FILE,gat_file
where OWNER='DS'
  and (TABLE_NAME like '%_FILE'  or TABLE_NAME like'TC_%')
  AND LOWER(COLUMN_NAME)=GAQ_FILE.GAQ01(+)
  AND GAQ02='0'
  AND LOWER(TABLE_NAME)=GAT_FILE.GAT01 (+)
  AND GAT02='0'
ORDER BY 1,3


下圖就是轉入之後的叫出該table 時,就會自動顯示中文說明


2011年8月29日 星期一

Smart Query 設計端安裝在 Windows 7 64bit (連接Oracle db)

經過好一番的測試終於裝上去了 把記得的重點寫一下

1. 只能安裝 Oracle 32 bit 的驅動程式
2.設定 netmanager
3.Oracle 安裝目錄下的 client_1 也要授權給 network_service
4. IIS 7.5 中的 DefaultAppPool 要設定 32bit===> True

另外也寫一下 SQL 2008 的連接
不要使用SQL Native 10 ,若仍使用Native Client ,請在查詢參數調整 資料庫連接選項,ADO.NET OLEDB


可以使用 OLE DB for SQL



過程中 很感謝聯銓的工程師 Dill 不厭其煩的接受我的騷擾 >"<

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 ,他的服務很好,可以提供協助進行測試及提供報價的服務


蘇憲寧 Vincent 台北市忠孝東路550819F2 02-27260885#227 Mobile: 0937-472068
聯銓資訊科技有限公司 Smart eVision Information Technology Inc. http://www.lcnet.com.tw/global/

2011年5月31日 星期二

(Link) Convert a VMware hard drive image between single-file and split modes

http://mikebeach.org/2011/05/convert-a-vmware-hard-drive-image-between-single-file-and-split-modes/


To convert a single file to a split-file hard drive:
vmware-vdiskmanager -r <InDisk.vmdk> -t <type> <OutDisk.vmdk>
Type is one of:
  • 0 : single growable virtual disk
  • 1 : growable virtual disk split in 2GB files
  • 2 : preallocated virtual disk
  • 3 : preallocated virtual disk split in 2GB files
Example:
vmware-vdiskmanager -r winxp.vmdk -t 1 winxp-2.vmdk
Successful conversion gives the following output:
Creating disk 'winxp-2.vmdk'
Convert: 100% done.
Virtual disk conversion successful.

2011年5月29日 星期日

ANSI 顯示

echo "\n\t\033[7m Rebuild TIPTOP Package \033[m\033[5m Ver 1.0\033[m"

顯示成 






請改用

echo -e "\n\t\033[7m Rebuild TIPTOP Package \033[m\033[5m Ver 1.0\033[m"











感謝 達暐老師~@@~

缺 e1000325.sys ???

到 Intel 的網站去下載安裝 PROWin32.exe  或  PROWin64.exe


http://downloadcenter.intel.com/detail_desc.aspx?agr=Y&DwnldID=18718
http://downloadcenter.intel.com/Detail_Desc.aspx?lang=eng&DwnldID=18720


http://downloadcenter.intel.com/detail_desc.aspx?agr=Y&DwnldID=18725

你缺的相關檔案就都補上了。

2011年5月27日 星期五

2011年5月26日 星期四

客戶簽收客製

鼎新 IFRS 好德科技經驗分享中,該公司主管說,他們認列應收帳款,中國大陸有設定+45天,會自動認列。

我們早就做到了,還可以分地區別來設定參數控制。

單一BU 對同一客戶有不同的收款條件的客製

昨天去參加鼎新IFRS 其他公司的經驗分享。聽完該公司主管的說明,我只想說,你們碰到的問題,我都開發處理完成了。我們做到的,比你們碰到的多很多。

他們其中一個問題是,如果不同BU 有不同的收款條件要如何處理?
我們是同一BU ,不同產品線有不同的收款條件,都做完了。















2011年5月25日 星期三

Genero 常見的 sql error 100 -206 -239

Genero 常見的 sql error 100 -206 -239

= 100  查無此資料

= -206  沒有這個 Table 或 view
   The specified table table-name is not in the database.

= -239 資料重複
   Could not insert new row - duplicate value in a UNIQUE INDEX column.

2011年5月2日 星期一

TIPTOP License 保護

寫得很爛耶,計算 Genero 的數量也就算了,還去算 gbq_file 的數量做甚麼?
gbq_file 如有意外斷線就死在上面了。



可是這些是在哪邊計算呢?江湖一點訣,一分鐘就可以把原理講完。


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~
可以客製嗎? ~當然能~

2011年4月25日 星期一

(原創) 如何利用 date 指令算出任一天的 ISO 8601 週數

算  2008/11/28 的指令

date --date="20081128" +%U

所以  4gl 能不能直接調用 Linux date 的指令幫忙算出 ISO 8601 的週數?
當然能......










http://www.linuxfocus.org/~katja/toolbox/calendar.html





%U
week number of year with Sunday as first day of week (00..53)
%V
week number of year with Monday as first day of week (01..53)

(轉) date 要如何輸出非今天的日期

轉自: http://blog.longwin.com.tw/2010/07/linux-date-computer-2010/


昨天 (前一天)

  • date --date='1 days ago' "+%Y-%m-%d"
  • date -d '1 days ago' "+%Y-%m-%d"
  • date -d yesterday "+%Y-%m-%d"

明天 (後一天)

  • date --date='1 days' "+%Y-%m-%d"
  • date -d '1 days' "+%Y-%m-%d"
  • date -d tomorrow "+%Y-%m-%d"

1小時前

  • date --date='1 hours ago' "+%Y-%m-%d %H:%M:%S"

1小時後

  • date --date='1 hours' "+%Y-%m-%d %H:%M:%S"

1分鐘前

  • date --date='1 minutes ago' "+%Y-%m-%d %H:%M:%S"

1分鐘後

  • date --date='1 minutes' "+%Y-%m-%d %H:%M:%S"

1秒前

  • date --date='1 seconds ago' "+%Y-%m-%d %H:%M:%S"

1秒後

  • date --date='1 seconds' "+%Y-%m-%d %H:%M:%S"

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 的感覺













取得 TIPTOP 目前 Genero 開發工具的相關資訊

fpi -V

ftp -l

2011年4月21日 星期四

Genero & htm5

這個有趣了喔

甚麼是 htm5
http://dev.w3.org/html5/spec/Overview.html

http://zh.wikipedia.org/wiki/HTML5

htm5 跟 Genero 開發的關係? 因為透過 htm5 就有機會讓你手機 使用 Genero 4GL 開發的程式


http://www.4js.com/en/news/products/2010/statement-of-direction-genero-html-5-ready

Today, the Genero Web Client snippet technology already implements some HTML 5 features, which can be seen in the CANVAS business graphicssupported since Genero 2.20. Firefox, Safari and Chrome are among the few browsers supporting these features today (click on the table for more information). Genero developers can also customize their AJAX applications to use HTML 5 features on condition that they are deployed within browsers that support them. This AJAX snippet set will be smoothly migrated to HTML 5 whenInternet Explorer 9 is released.

… and continued support for MS Silverlight

It is our intent to continue supporting Silverlight for as long as there is demand and there is support from Microsoft. According to Brad Becker, Director of Microsoft Product Management, Developer Platforms, the future is bright:




more information http://www.kingstone.com.tw/book/book_page.asp?LID=se008&kmcode=2013120172760&Actid=wise&partner=

2011年4月19日 星期二

g_user 的記錄不夠詳細?

有人覺得 g_user 記錄不夠明確嗎?

沒關係 照過來~~~~

年月日/時間, 還有 用那個 windows 帳號,在哪一台電腦登入,用那個 tiptop帳號 通通一清二楚。

source code 出售~


TIPTOP/ Genero 4gl 直接抓取 中央銀行 每日收盤匯率資料

不需要用到 java 直接寫 4gl 抓取

中央銀行的收盤匯率網址
http://www.cbc.gov.tw/lp.asp?CtNode=645&CtUnit=308&BaseDSD=32&mp=1









程式的執行畫面








海關三旬匯率?








我怎麼知道有沒有成功?





2011年2月4日 星期五

Oracle date

"sfb01 like '%' and sfb13 between TO_DATE('2011-01-01 00:00:00','YYYY-MM-DD HH24:MI:SS') and TO_DATE('2011-01-31 00:00:00','YYYY-MM-DD HH24:MI:SS')"

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
  ###############################################################################