PG資料向Kingbase移植

2021-07-26 21:42:09 字數 3749 閱讀 8207

--裝置表

update my_dev_tab set description = 'dummy'

where description is

null

or description = '';

--列字典表

update my_col_dict set col_name_chn = 'dummy'

where col_name_chn is

null

or col_name_chn = '';

--列字典表

update my_col_dict set col_order = unique_int where col_order is

null;

清空或刪除db_health表。

2.從pg匯出資料為sql語句指令碼。

pg_dump--

dbname=my_db_name--

host=my_host_ip_addr--

username=my_username--

no-password--

data

-only--

exclude

-table

-data=my_exclude_tables--

inserts--

column

-inserts--

encoding=utf8--

disable

-dollar

-quoting--

file=data_only_insert_sql

.backup

set statement_timeout = 0;

set lock_timeout = 0;

set client_encoding = 'utf8';

set standard_conforming_strings = on;

set check_function_bodies = false;

set client_min_messages = warning;

set row_security = off;

set search_path = smartsys, pg_catalog;

改為

set client_encoding = 'utf8';

set standard_conforming_strings = on;

set check_function_bodies = false;

set client_min_messages = warning;

set search_path = smartsys;

4.清理kingbase中表的資料。

select出schema中所有的表,生成truncate語句。然後執行之。

isql -d my_db_name -h host_ip -p

54321

-u my_user_name -w my_password -f

1_ctuncate_tabs.sql

5.禁用kingbase中的insert觸發器。

如果需要,先建立儲存過程。然後執行之。

create

or replace procedure

disable_all_insert_triggers

()as

declare

trigger_cur

refcursor;

trigger_name_var varchar(128);

table_name_var varchar(128);

sql_var varchar(1024);

begin

open trigger_cur for

select trigger_name, event_object_table from information_schema.triggers where event_manipulation = 'insert'

and trigger_name like 'ti_%';

loop

fetch trigger_cur into trigger_name_var, table_name_var;

exit when trigger_cur%notfound;

sql_var = 'alter table '||table_name_var||' disable trigger '||trigger_name_var;

raise notice '%', sql_var;

execute immediate sql_var;

endloop;

close trigger_cur;

end;

call disable_all_insert_triggers();

6.執行sql語句指令碼匯入資料,並記錄日誌。

isql -d my_db_name -h host_ip -p

54321

-u my_user_name -w my_password -f

1_data_only_utf8.sql > imp_2_kdb.

log2

>&

1

7.啟用kingbase中的insert觸發器。

如果需要,先建立儲存過程。然後執行之。

create

or replace procedure

enable_all_insert_triggers

()as

declare

trigger_cur

refcursor;

trigger_name_var varchar(128);

table_name_var varchar(128);

sql_var varchar(1024);

begin

open trigger_cur for

select trigger_name, event_object_table from information_schema.triggers where event_manipulation = 'insert'

and trigger_name like 'ti_%';

loop

fetch trigger_cur into trigger_name_var, table_name_var;

exit when trigger_cur%notfound;

sql_var = 'alter table '||table_name_var||' enable trigger '||trigger_name_var;

execute immediate sql_var;

endloop;

close trigger_cur;

end;

call enable_all_insert_triggers();

8.檢查匯入結果。

檢查記錄數:開啟sql指令碼檔案1_data_only_utf8.sql,統計其中出現「insert into 」的次數;開啟日誌檔案imp_2_kdb.log,統計其中出現「insert 0 1」的次數。兩者應相等。同時確認日誌檔案中沒有出現「error」、「warn」、「錯誤」、「警告」等字樣。

檢查中文亂碼:開啟一張含有中文的表,肉眼檢查一下中文字段是否為亂碼。

go 通過odbc獲取kingbase資料庫資訊

kingbasees 8 odbc driver description kingbasees 8 odbc driver for linux driver xx xx xx kingbase odbc linux x86 64 kdbodbcw.so setup xx xx xx kingbase...

tomcat向weblogic移植需要注意的問題

1.在開發階段,對應用程式熱部署時,會丟擲classcastexception異常,這是因為類載入器的原因,因為在對程式熱部署會由不同的類載入器載入同乙個類,解決辦法 重啟weblogic或在console中web模組配置中對問題程式點選重新部署 2.用frameset實現的框架頁面,其中的頁面有時...

pg學習 資料更新

資料更新 1 插入 語法結構 highgo h insert command insert description create new rows in a table syntax with recursive with query insert into table name column na...