使用Sybase客戶端Interactive SQL java備份數據庫
因為要備份IQ數據庫的表數據,IQ又不能支持bcp,倒是有兩個方法能夠滿足我的工作。
1)Sybase 客戶端Interactive SQL java 真是好的不能再好。
2)直接在客戶端上鍵入如下SQL
select * from table ># filename
這條語句能夠將數據直接輸入到客戶端中去。很方便,其中filename不需要引號,如D:\\filename就行。
select * from table >& filename
該語句會連同相應的信息也一並輸出到文件去。
3)使用如下選項
set temporary open Temp_Extract_Apend=ON//會將數據添加到文件中,默認該選項為OFF,即是覆蓋掉原有數據
set temporary open Temp_Extract_Name1='filname'//如果不指定文件路徑,就默認輸出到
安裝目錄下的一個文件夾中,具體什麼目錄,unix環境下直接find一下就知道。指定文件路徑的時候,那個文件夾必須要有相應的權限即用戶名:組名都是sybase,不然會導出失敗。
select * from table //直接執行該SQL數據就導出到服務器上去。
這種方法,對於導出大數據集很方便,很快。該方法還支持導出二進制文件,設置
Temp_Extract_Binary=ON(默認為OFF)
4)至於將數導入到數據中去時候,以上兩種方法都得使用
LOAD TABEL 命令
對於保存在服務器上的備份數據文件可以直接使用
Java代碼
LOAD TABLE Departments
( DepartmentID, DepartmentName, DepartmentHeadID )
FROM '/d1/MILL1/dept.txt'
ESCAPES OFF
對於在客戶端上面的文件使用命令,只不過這個方法好像會涉及到安全策略問題,我自己有還沒試驗成功。
Java代碼
LOAD TABLE Departments
( DepartmentID, DepartmentName, DepartmentHeadID )
USE CLIENT FILE '/d1/MILL1/dept.txt'
ESCAPES OFF
詳細請參考Sybase IQ的數據《系統管理指南》
作者 揚州老鬼