Oracle遷移至SQLite
文章參考:http://blog.csdn.net/johnnycode/article/details/7413111#
1. 從PL/SQL 中查詢你要的資料,然後匯出成CSV格式檔案;
也可以使用指令碼進行匯出CSV檔案,具體如下:
--set colsep ' || ';
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;
set newpage none; --沒有翻頁,輸出的檔案沒有空行
spool e:\name.csv;
--select col1||','||col2 from table_name;
select t.type_code||','||t.type_name from t_b_op_type t;
spool off;
2. 用記事本開啟CSV檔案。首先需要將 CSV 檔案處理下字元集的問題,眾所周知
sqlite 預設字元集 UTF-8 ,涉及中文的地方如果不設定那麼匯入sqlite的資料將會亂碼
右鍵選擇 CSV 檔案,開啟檔案為記事本,將會看到如下資料
需要將第一行列去除,然後將分號 ” 同時去掉,最終結果為
下面這步最重要,將檔案另存新檔,最下方編碼選擇 UTF-8 ,然後另存到E盤根目錄即可。
2. 建立資料庫
運行cmd命令,在CMD下進入到SQLite檔案夾,輸入sqlite3.exe mydata.db(資料庫名稱),
如不指定路徑,那麼 sqlite3 將會預設將資料庫檔案建立運行 sqlite3 的目錄中。(此過程不會產生db檔案)
sqlite3.exe mydata.db
3. 建立表
建表語句可以從 oracle 中複製即可。建表完畢,可以使用 .ta 命令查看建立表是否成功。(此過程完後產生db檔案)
create table T_B_OP_TYPE…
.ta
4. csv 預設資料分割符為逗號 “,” 而 sqlite 預設資料分割符為 “|” ,先用 .show 命令確認下
.show
更改分隔字元為”,” .separator “,”
再次確定 .show
.show
5. 匯入資料(.import //匯入命令)
.import 資料庫路徑\mydata.db
6. 驗證
select * from T_B_OP_TYPE; //分號不能少
OK,大功告成!
如果PC沒有安裝 sqlite ,這裡將 sqlite 操作交給 Android 手機來處理
參考文章:http://blog.csdn.net/johnnycode/article/details/7413111#
SQL Server遷移至SQLite
貌似這個SQL_Server_To_SQLite_DB_Converter軟體很強大,此工具可轉換Sql Server資料庫為Sqlite資料,包括結構和資料,可以直接搞定!
工具:http://files.cnblogs.com/huwei_good/SQL_Server_To_SQLite_DB_Converter_bin.zip
SQL Server Address: 資料庫地址
Select DB:選擇資料庫
Sqlite Database File Path:Sqlite資料庫檔案儲存路徑;
Password:設定資料庫密碼
填寫好了,直接點擊開始匯出即可!
該軟體是從老外的網站下載的,是用C#寫的一個程式,是開源的,大家可以去此處下載:http://www.codeproject.com/KB/database/convsqlservertosqlite.aspx可以下載整個編譯的程式,也可以下載編譯完成的debug程式,功能十分強大.
SQLite 常用命令
入門系列:http://www.cnblogs.com/myqiao/archive/2011/07/10/2102465.html
sqlite常用命令和執行個體:http://huangjianming31.blog.163.com/blog/static/34740871201062121316395
sqlite常用命令和文法:http://blog.csdn.net/linchunhua/article/details/7184439
sqlite常用設定命令:http://www.cnblogs.com/caizhimin816/articles/1885349.html
在SQLite中,對大小寫是敏感的。那麼SQLite怎麼區分大小寫查詢呢,以下是三種解決方案:
方案一:使用大小寫轉換函式LOWER、UPPER
1.select * from test where UPPER(name) = 'ABC';
2.select * from test where LOWER(name) = LOWER('ABC');
方案二:在進行比較時強制聲明不區分大小寫
select * from test where name = 'ABC' COLLATE NOCASE;
方案三:建立表時聲明該欄位不區分大小寫
create table test (_id Integer,name Text COLLATE NOCASE );