<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      信創-ORACLE遷移到KingbaseV9

      信創-ORACLE遷移到KingbaseV9

      1. 實列初始化

      下載 KingBaseV9 V009R002C010 oralce兼容版本,完成安裝.

      http插件不支持在Windows平臺使用,若需要,不要安裝到windows平臺

      2. 服務注冊

      安裝完成后,通過預置的腳本注冊服務

      # 公眾號:小滿小慢 小游戲: 地心俠士
      /kingbase/install/script/root.sh #注冊服務
      /kingbase/install/script/rootuninstall.sh #刪除服務
      /kingbase/Server/bin/sys_ctl -w start -D /kingbase/data -l /kingbase/data/sys_log/startup.log #啟動服務
      /kingbase/Server/bin/sys_ctl sys_ctl stop -m fast -w -D /kingbase/data #關閉服務
      /kingbase/iso/setup.sh -i console #安裝數據庫
      /kingbase/Uninstall/Uninstaller -i console #卸載數據庫
      

      3. 必要兼容配置

      設置全局兼容參數

      # 修改kingbase/Server/conf/kingbase.conf 文件
      shared_preload_libraries = 'kdb_schedule,kdb_xmltype,dbms_lob' #在原有配置追加配置
      # 公眾號:小滿小慢 小游戲: 地心俠士
      job_queue_processes=10  # 添加任務隊列進程數>1才能使用任務
      

      修改完成重啟數據庫

      /kingbase/Server/bin/sys_ctl -w restart -D /kingbase/data -l /kingbase/data/sys_log/startup.log
      

      重啟完成后,設置其他兼容參數

      -- 公眾號:小滿小慢 小游戲: 地心俠士
      alter system set default_with_rowid = 'on';
      alter system set enable_upper_colname ='on';
      alter system set ora_statement_level_rollback = 'on';
      alter system set ora_numop_style = 'on';
      alter system set plpgsql.variable_conflict = 'use_variable';
      alter system set ora_forbid_func_polymorphism = 'off';
      alter system set sys_job.poll_time = 10 ;-- 設置job輪詢時間 默認10秒
      alter system set ignore_zero_number = 'on'; --小數不顯示多余的零
      

      安裝擴展包

      create extension kdb_raw;
      create extension dbms_obfuscation_toolkit;
      create extension utl_file;
      create extension kdb_schedule;
      create extension dbms_lob;	
      create extension dbms_random;
      create extension http;
      create extension kdb_xmltype;	
      create extension dbms_xmlgen;
      -- 公眾號:小滿小慢 小游戲: 地心俠士
      

      建立適配類型

      建立適配同義詞

      --公眾號:小滿小慢 小游戲: 地心俠士
      create or replace public synonym cols for user_tab_cols; 
      create or replace public synonym "fun_strcat" for "sys"."wm_concat";
      create or replace public synonym "raw" for "sys"."bytea";
      

      建立適配函數

      建立適配視圖

      CREATE OR REPLACE VIEW user_procedures AS
      -- 公眾號:小滿小慢 小游戲: 地心俠士
      SELECT 
      ora_upper((p.pkgname)::text) AS procedure_name,
      ora_upper((f.proname)::text) AS object_name
      FROM (
      (_pkg p LEFT JOIN _nsp n ON ((p.pkgnamespace = n.oid)))
      JOIN LATERAL sys_get_package_function_detail(n.nspname, p.pkgname) f(pkgoid, oid, proname, prokind, proretset, pronargs, proargnames, proargmodes, proargtypes, prorettype, prosrc) ON ((f.pkgoid = p.oid)))
      WHERE ((f.pronargs >= 0) AND (p.pkgowner = uid()))
      ORDER BY n.nspname;
      

      關鍵字沖突處理

      DEC OUT OFFSET INTERVAL  ERROR 
      

      4. 遷移必須步驟

      為了保障數據庫遷移的準確度,總結為以下4步驟

      1. 遷移表結構
      2. 遷移表數據
      3. 遷移觸發器外的所有腳本
      4. 遷移觸發器
      5. 遷移完成后,確保啟用所有觸發器

      5. 特殊語法處理

      • 不支持chr(0)
      ---oracle--- 公眾號:小滿小慢 小游戲: 地心俠士
      select 'abc'||chr(0) from dual;
      ---kingbase---
      --報 null character not permitted 錯誤
      --Oracle rpad( p_text, (trunc(length(p_text)/8)+1)*8, chr(0))
      --修改成
      --rpad( p_text, (trunc(length(p_text)/8)+1)*8, ' ');
      
      • 查詢語句中表不能直接使用括號
      ---oracle--- 公眾號:小滿小慢 小游戲: 地心俠士
      select * from (USER_TAB_COLS); --可以查詢到結果
      ---kingbase---
      select * from (USER_TAB_COLS); --ERROR: syntax error at or near ")"
      
      • 不支持游標FOR后邊使用表達式
      ---oracle---可以正常輸出內容
      DECLARE
       c SYS_REFCURSOR;
       d NUMBER;
       tsql VARCHAR2(100);
      BEGIN
       OPEN c FOR NVL(tsql,'SELECT 1 a FROM dual');
       LOOP
         FETCH c INTO d;
         EXIT WHEN c%NOTFOUND;
        DBMS_OUTPUT.PUT_LINE(d);
       END LOOP;
      CLOSE c;
      END;
      -- 公眾號:小滿小慢 小游戲: 地心俠士
      ---kingbase---語法錯誤 ERROR: syntax error at or near "OPEN "
      DECLARE
      c SYS_REFCURSOR;
      d NUMBER;
      tsql VARCHAR2(100);
      BEGIN
        OPEN c FOR NVL(tsql,'SELECT 1 a FROM dual');
        LOOP
          FETCH c INTO d;
          EXIT WHEN c%NOTFOUND;
          RAISE NOTICE '%',d;
        END LOOP;
        CLOSE c;
      END;
      
      • 擴展包UTL_HTTP刪除異常變量UTL_HTTP.end_of_body 在處理請求異常需要注釋這部分內容.并且UTL_HTTP中的刪除Write相關方法,目前使用UTL_HTTP.write_text發送POST請求,在Kingbase中需要使用http函數代替,并且不需要再建立ACL
      ---Oracle---
      DECLARE
      l_http_request  UTL_HTTP.req;
      l_http_response UTL_HTTP.resp;
      l_response_text CLOB;
      l_url           VARCHAR2(100) := 'http://httpbin.org/post';
      l_json_payload  VARCHAR2(100) := '{"a":2}';
      BEGIN
        -- 公眾號:小滿小慢 小游戲: 地心俠士--
        l_http_request := UTL_HTTP.begin_request(url => l_url, method => 'POST', http_version => 'HTTP/1.1');
        UTL_HTTP.set_header(l_http_request, 'Content-Type', 'application/json');
        UTL_HTTP.set_header(l_http_request, 'Content-Length', LENGTH(l_json_payload));
        UTL_HTTP.write_text(l_http_request, l_json_payload);
        l_http_response := UTL_HTTP.get_response(l_http_request);
        BEGIN
          LOOP
            UTL_HTTP.read_text(l_http_response, l_response_text, 32767);
            DBMS_OUTPUT.PUT_LINE(l_response_text);
          END LOOP;
        EXCEPTION
          WHEN UTL_HTTP.end_of_body THEN
            UTL_HTTP.end_response(l_http_response);
          WHEN OTHERS THEN
            UTL_HTTP.end_response(l_http_response);
            DBMS_OUTPUT.PUT_LINE('Error: ' || SQLERRM);
        END;
      END;
      
      ---Kingbase---
      DECLARE
      resp http_response; --這里Oracle對應是 UTL_HTTP.resp
      l_url           VARCHAR2(50) := 'http://httpbin.org/post';
      l_json_payload  VARCHAR2(100) := '{"a":2}';
      BEGIN
        resp := http_post(l_url, l_json_payload, 'application/json; charset=utf-8');
        RAISE NOTICE '%',resp.status;
        RAISE NOTICE '%', resp.content;
      EXCEPTION
        --WHEN UTL_HTTP.end_of_body THEN -- 需要注釋掉
        --UTL_HTTP.end_response(resp);
        --公眾號:小滿小慢 小游戲: 地心俠士
        WHEN OTHERS THEN
          UTL_HTTP.end_response(resp);
          RAISE NOTICE '錯誤: %', SQLERRM;
      END
      
      • 不能通過sys.ODCIVARCHAR2LIST實現內存表查詢,需要轉換kdb寫法
       ---oracel---
       SELECT * FROM TABLE(SYS.ODCIVARCHAR2LIST(1,2,3,4,5))
       ---kingbase---公眾號:小滿小慢 小游戲: 地心俠士
       SELECT unnest(ARRAY[1,2,3]) AS column_name FROM dual;
       --文本拆分可以使用 string_to_array(str, ',');
       SELECT unnest(string_to_array('1,2,3,4,*,6', ','));
      
      • XmlElement不能直接使用元素名稱,需要添加 name 關鍵字
      --kingbase--- oracle支持此語法
      with t as (select 1 F_A, 2 F_B from dual)
      SELECT xmlelement(name "a",F_A) AS ABC FROM t;
      
      • XmlForest元素名沒有大寫,需要使用AS指定為大寫的元素名
      --kingbase--- 公眾號:小滿小慢 小游戲: 地心俠士
      --orace生成的<F_A></F_A>是大寫kingbase生成的<f_a></f_a>是小寫
       with t as (select 1 F_A, 2 F_B from dual)
       SELECT XMLELEMENT(name "ROW", xmlforest(F_A, F_B)) AS ABC FROM t;
       ---kingbase---修改方案
       with t as (select 'a' F_A, 'b' F_B from dual)
       SELECT XMLELEMENT(name "ROW",xmlforest(f_a AS "F_A", f_b AS "F_B")) AS ABC FROM t;
      
      • XMLTALBE 解析XML不支持默認列列類型
       ----Oracle---
       select x.*
       from xmltable('/rows/row' passing
                      xmltype('<rows><row><name>test</name></row></rows>')
                      columns xml_NAME path 'name') x
      --kingbase---
       select x.*
       from xmltable('/rows/row' passing
                      xmltype('<rows><row><name>test</name></row></rows>')
                      columns xml_NAME varchar2(100) path 'name') x
      
      • 未提供 xmltype.getClobVal 靜態方法
        ----Oracle---公眾號:小滿小慢 小游戲: 地心俠士
       with t as (select 1 F_A, 2 F_B from dual)
       SELECT Xmltype.getClobVal(xmlelement("A", F_A)) AS ABC FROM t;
       ----kingbase---Oracle也支持此語法
       with t as (select 1 F_A, 2 F_B from dual)
       SELECT xmlelement(name "a",F_A).getClobVal() AS ABC FROM t;
      
      • NEXT_DAY函數不支持number類型需要轉換成int,使用CAST或者直接定義成int
      ---Oracle---公眾號:小滿小慢 小游戲: 地心俠士
      DECLARE
       d date;
       m number;
      BEGIN
       m := 1;
       select NEXT_DAY(SYSDATE, m) into d from dual;
       dbms_output.put_line(to_char(d, 'yyyy-mm-dd'));
      END;
      ---KingBase---
      DECLARE
       d date;
       m number ;
      BEGIN
       m := 1;
       select NEXT_DAY(SYSDATE, CAST(m AS integer)) into d from dual;
      RAISE NOTICE '%',to_char(d, 'yyyy-mm-dd');
      END;
      
      • Group by rollup 數據沒有按照明細小計匯總的方式排序,需要顯示指定排序,可以直接使用 rollup(a,b) order by grouping(a),a,b 排序
      ---oracle--- 默認按照明細 小計 合計順序排序
      with t as
       (select 1 as F_A, 'a' as F_C, 'L1' F_D
          from dual
        union all
        select 1 as F_A, 'a' as F_C, 'L2' F_D
          from dual
        union all
        select 1 as F_A, 'b' as F_C, 'L1' F_D
          from dual
        union all
        select 1 as F_A, 'b' as F_C, 'L2' F_D
          from dual)
      select decode(grouping(F_C), 1, '合計', F_C),
             decode(grouping(F_D) + grouping(F_C), 1, '小計', F_D), sum(F_A),
             grouping(F_C), grouping(F_D), GROUP_ID()
        from t
       group by rollup(F_C, F_D)
      ---kingbase--- 默認按照合計,明細,小計順序排序
      -- 公眾號:小滿小慢 小游戲: 地心俠士
        with t as
       (select 1 as F_A, 'a' as F_C, 'L1' F_D
          from dual
        union all
        select 1 as F_A, 'a' as F_C, 'L2' F_D
          from dual
        union all
        select 1 as F_A, 'b' as F_C, 'L1' F_D
          from dual
        union all
        select 1 as F_A, 'b' as F_C, 'L2' F_D
          from dual)
      select decode(grouping(F_C), 1, '合計', F_C),
             decode(grouping(F_D) + grouping(F_C), 1, '小計', F_D), sum(F_A),
             grouping(F_C), grouping(F_D)
        from t
       group by rollup(F_C, F_D) order by grouping(F_C),F_C, F_D --需要指定排序
      
      • 金倉不支持 group_id 函數

      • 通過代碼提交JOB語法差異,必須要初始連接信息

      ---建立測試表,測試函數---
      create table a_proc_schedule_test(tid varchar2(64), insdate date);
      create or replace procedure a_schedule_test as
      begin
        insert into a_schedule_test values(to_char(sysdate, 'yyyymmddhh24miss'), sysdate);
        commit;
      end;
      ---oracle---公眾號:小滿小慢 小游戲: 地心俠士
      DECLARE
      jobno NUMBER;
      BEGIN
        jobno:=1;
        DBMS_JOB.ISubmit(jobno,'begin a_proc_schedule_test; end;',
          next_date =>sysdate+(1/24/60/60*1), --1秒后運行
          interval => '' --值為空表示只運行一次
        );
        COMMIT;
        --查詢job信息
        for cur in( select * from user_jobs j where j."JOB"=1) loop
          dbms_output.put_line(cur."WHAT");
        end loop;
      END;
      ---kingbase---公眾號:小滿小慢 小游戲: 地心俠士
      DECLARE
        v_jobid NUMBER;
      BEGIN
        v_jobid :=1;
        -- 如果提交任務不能運行,帶上模式名 test.a_proc_schedule_test
        dbms_job.submit(v_jobid, 'begin a_proc_schedule_test; end;', now(), 'Freq=YEARLY;Interval=10'); --提交job每10年運行一次,足夠長滿足一次調用'
        COMMIT;
      END;
      call dbms_job.instance(1, 'user=system dbname=test port=54321 password=test'); --初始實列信息
      CALL dbms_job.RUN(1); --運行job
      CALL dbms_job.remove(1); --刪除job 
      
      • Oracle終止任務可以通過語句結束session,kingbase沒有
      ---Oracle---
      SELECT MAX(SID) FROM sys.dba_jobs_running WHERE JOB=JOBID
      SELECT MAX(SERIAL#) FROM  v$session WHERE SID=上邊查詢的SID
      --結束session
      ALTER SYSTEM KILL SESSIOON 'SID,SERIAL#';
      DBMS_JOB.broken(JOBID,TRUE); --中斷任務
      DBMS_JOB.remove(JOBID); --刪除任務
      commit; --提交數據
      ---kingbase---
      -- 公眾號:小滿小慢 小游戲: 地心俠士
      -- 結束進程 ,沒有SERIAL#信息
      -- sys_terminate_backend(pid) 結束進程
      -- sys_cancel_backend(pid) 取消執行sql
      DBMS_JOB.broken(JOBID,TRUE); --中斷任務
      DBMS_JOB.remove(JOBID); --刪除任務
      commit; --提交數據
      
      • 唯一索引存在可空列,判斷和預期不符和,oracle不能插入多個null數據,kingbase可以
      ---oracle---
      DROP TABLE a_test_unique;
      SELECT * FROM  a_test_unique;
      CREATE TABLE a_test_unique (
         username VARCHAR(50) ,
         email VARCHAR(100),
        CONSTRAINT unique_username_email UNIQUE (username, email)
      );
      INSERT  INTO a_test_unique(username)values('a');
      INSERT  INTO a_test_unique(username)values('a'); --ORA-00001: 違反唯一約束條件 (HXXT.UNIQUE_USERNAME_EMAIL)
      ---kingbase---
      -- 可以插入兩條[a,null]的數據,所以再kingbase中需要做多列的唯一判斷需要避免可空列
      INSERT  INTO a_test_unique(username,email)values('a','n');
      INSERT  INTO a_test_unique(username,email)values('a','n');
      -- 這種情況才報錯 
      --SQL 錯誤 [23505]: ERROR: duplicate key value violates unique constraint  "unique_username_email" Detail: Key (username, email)=(a, n) already exists
      --改成唯一索引也不能實現oracle類似效果
      CREATE UNIQUE INDEX idx_unique_username_email ON a_test_unique (username, email);
      
      • 最小日期聚合函數問題,kingbase返回不正確,使用pg_catalog.min()函數代替
      ---oracle---
      WITH t AS
       (SELECT to_date('2025-04-01 12:01:32', 'yyyy-mm-dd hh24:mi:ss') AS d
          FROM dual
        UNION
        SELECT to_date('2025-04-02 14:01:50', 'yyyy-mm-dd hh24:mi:ss') AS d
          FROM dual)
      SELECT min(d), max(d) FROM t;
      -- min 2025/4/1 12:01:32 max 2025/4/2 14:01:50 
      ----kingbase--- 再sys和pg_catalog模式下都有 min  max函數,pg_catalog 返回是正確的
       WITH t AS
         (SELECT to_date('2025-04-01 12:01:32', 'yyyy-mm-dd hh24:mi:ss') AS d
            FROM dual
          UNION
          SELECT to_date('2025-04-02 14:01:50', 'yyyy-mm-dd hh24:mi:ss') AS d
            FROM dual)
        SELECT sys.min(d) sysmin, sys.max(d) sysmax ,pg_catalog.min(d) pgmin,pg_catalog.max(d) pgmax FROM t; 
        --sysmin 2000-01-01 00:00:00 sysmax 2025-04-02 14:01:50
        --pgmin  2025-04-01 12:01:32 pgmax  2025-04-02 14:01:50
      
      • Oracle再PL/SQL中支持中文逗號,中文括號,經過測試kingbase也支持,遇到了最好還是調整下代碼
      ---靜態測試sql---公眾號:小滿小慢 小游戲: 地心俠士
      with t as (select 1 F_A,'a' F_B from dual)
      select * from t where t.F_B in ('a');
      ---動態測試sql ORacle---
      DECLARE
        sqltxt VARCHAR2(200);
        cur    SYS_REFCURSOR;
        a      number;
        b      VARCHAR2(100);
      BEGIN
        sqltxt := 'with t as (select 1 F_A,''a'' F_B from dual)
      select * from t where t.F_B in (''a'')';
        OPEN cur FOR sqltxt;
        LOOP
          FETCH cur
            INTO a, b;
          EXIT WHEN cur%NOTFOUND;
          DBMS_OUTPUT.PUT_LINE('F_A: ' || a || ', F_B: ' || b);
        END LOOP;
        CLOSE cur;
      END;
      ---動態測試sql kingbase---
      DECLARE
        sqltxt VARCHAR2(200);
        cur    SYS_REFCURSOR;
        a      number;
        b      VARCHAR2(100);
      BEGIN
        sqltxt := 'with t as (select 1 F_A,''a'' F_B from dual)
      select * from t where t.F_B in (''a'')';
        OPEN cur FOR sqltxt;
        LOOP
          FETCH cur
            INTO a, b;
          EXIT WHEN cur%NOTFOUND;
         RAISE  NOTICE '%',('F_A: ' || a || ', F_B: ' || b);
        END LOOP;
        CLOSE cur;
      END;
      
      • 數據庫表多了tableoid,ctid,xmin,xmax,cmin,cmax 偽列信息,如果遷移的業務表存在這些字段,需要調整
      • 多行注釋必須成對出現(有開始必須有結束),否則會報錯
      --oracle--
      /* 測試注釋 /*test*/select 1 from dual;  --能查詢內容
      --kingbase--
      /* 測試注釋 /*test*/select 1 from dual; --sql處于注釋狀態
      
      • 小數出現很多0
      ---kingbase-- 公眾號:小滿小慢 小游戲: 地心俠士
      SELECT 3.0/100 FROM dual; 
      -- 0.0300000000000000000000000000000000000000
      -- 去掉多余的0 
      SET ignore_zero_number = 'on'
      -- 重新查詢 0.03
      
      • ABS 函數單獨查詢完整字符串可以,拼接串不行,oralce都可以
       SELECT ABS('-3.0') FROM dual; --oralce能查詢 kingbase能查詢
       SELECT ABS('-'||'3.0') FROM dual; --oracle能查詢 kingbase報錯
       SELECT ABS(CAST('-'||'3.0' AS number)) FROM dual; --oracele能查詢 kingbase能查詢
      
      • 觸發器指定列列時,不用使用REFERENCING 同時使用,底層觸發過度表機制.可根據有業務移除或使用觸發器函數改寫
      --oracle-- 語法支持
      CREATE OR REPLACE TRIGGER TEST_TABLE_UPDATE
        AFTER UPDATE OF F_A, F_B
        ON TEST_TABLE
        REFERENCING OLD AS OLD NEW AS NEW
        FOR EACH ROW
        DECLARE
        BEGIN
        -- 觸發器內容
      END;
      --kingbase-- 語法錯誤 
      -- transition tables cannot be specified for triggers with column lists
       CREATE OR REPLACE TRIGGER TEST_TABLE_UPDATE
        AFTER UPDATE OF F_A, F_B
        ON TEST_TABLE
        REFERENCING OLD AS OLD NEW AS NEW
        FOR EACH ROW
        DECLARE
        BEGIN
        -- 觸發器內容
      END;
      --修改方法 3 個
      -- 1. 注釋 OF F_A,F_B 
      -- 2. 或注釋 REFERENCING OLD AS OLD NEW AS NEW 
      ---3. 使用函數觸發器(測試未通過,依然報錯)
      CREATE TABLE  A_TEST_TRIGGER(F_A VARCHAR2(100),F_B VARCHAR2(100));
      CREATE OR REPLACE FUNCTION A_TEST_TRGGGER_FUN() RETURNS TRIGGER AS
      DECLARE 
      BEGIN 
      	RAISE NOTICE '%',TG_OP;
      END
      CREATE OR REPLACE TRIGGER A_TEST_TRIGGER_UPDATE
        AFTER UPDATE OF F_A, F_B ON A_TEST_TRIGGER
        REFERENCING OLD AS OLD NEW AS NEW
      FOR EACH ROW EXECUTE FUNCTION A_TEST_TRGGGER_FUN();
      

      6. 實用查詢語句

      SELECT version(); --查看數據庫版本
      SELECT GET_LICENSE_VALIDDAYS();--查看數據庫是否過期
      SELECT * FROM V$SESSION;--查看當前數據庫的會話信息
      SELECT * FROM pg_stat_activity;--查看當前數據庫的進程信息
      SELECT * FROM sys_config ;--獲取已安裝的KingbaseES的系統信息
      -- 公眾號:小滿小慢 小游戲: 地心俠士
      SELECT * FROM pg_settings;--查詢服務器運行參數
      SHOW exclude_reserved_words; --查看單個參數
      call sys_terminate_backend(pid); --終止指定進程
      call sys_cancel_backend(pid);--取消指定進程的查詢動作
      call sys_reload_conf(); --重新加載配置文件
      alter table test_table set with rowid; --給表添加ROWID
      
      dbms_sql.return_result("cur"); -- 打印游標
      RAISE  NOTICE '%',value; --打印日志
      
      --編譯函數,過程,觸發器,類型,包
      ALTER FUNCTION [schema_name.]func_name COMPILE;
      ALTER PROCEDURE [schema_name.]proc_name COMPILE;
      ALTER TRIGGER [schema_name.]trig_name COMPILE;
      ALTER PACKAGE [schema_name.]pkg_name COMPILE [ PACKAGE | SPECIFICATION | BODY ];
      ALTER TYPE [schema_name.]typ_name COMPILE [ SPECIFICATION | BODY ];
      
      --查詢,安裝,刪除擴展
      SELECT * FROM sys_available_extension_versions ;--查詢所有擴展版本
      SELECT * FROM sys_available_extensions;-- 查詢所有擴展
      CREATE EXTENSION http; --安裝擴展
      drop EXTENSION http;--刪除擴展
      ALTER EXTENSION http UPDATE TO '1.5'; --更新擴展
      
      --查詢所有表信息
      select * from user_tables;
      select OWNER,TABLE_NAME,TABLESPACE_NAME,TEMPORARY,STATUS,PARTITIONED,DROPPED from all_tables;
      
      --查詢所有列信息
      SELECT OWNER,TABLE_NAME,COLUMN_NAME,DATA_TYPE,DATA_LENGTH,NULLABLE FROM ALL_TAB_COLUMNS
      
      --查詢所有函數,存儲過程,程序包
      SELECT  * FROM  SYS_PROC;
      --查詢具體某個pkg定義信息
      SELECT  * FROM  sys_get_package_function_detail('test','test_package')
      -- 公眾號:小滿小慢 小游戲: 地心俠士
      --所有pkg定義信息
       SELECT nspname,pkgname,proname,prokind FROM 
       ((_pkg p LEFT JOIN _nsp n ON ((p.pkgnamespace = n.oid)))
       JOIN LATERAL sys_get_package_function_detail(n.nspname, p.pkgname) f ON ((f.pkgoid = p.oid)))
        WHERE (f.pronargs >= 0) AND (p.pkgowner = uid()) ORDER BY nspname;
      
      -- 根據方法名查詢過程信息
      SELECT proc.proname,proc.pronamespace,ns.nspname,proc."prorettype" ,ty.typname ,proc.* FROM pg_proc proc,pg_type ty,sys_namespace ns WHERE proc."prorettype" =ty."oid"  AND proc."pronamespace" = ns.oid and proname='min'
      --查詢所有參數信息
      select OWNER,OBJECT_NAME,PACKAGE_NAME,ARGUMENT_NAME,POSITION,DATA_TYPE,DEFAULTED,DEFAULT_VALUE,IN_OUT,DATA_LENGTH from ALL_ARGUMENTS
      
      --查詢所有對象
      select OWNER,OBJECT_NAME,OBJECT_TYPE,STATUS from ALL_OBJECTS
      
      --查詢函數,存儲過程,類型,觸發器代碼
      select * from ALL_SOURCE
      
      --查詢所有視圖代碼
      select OWNER,VIEW_NAME,TEXT from ALL_VIEWS
      
      --公眾號:小滿小慢 小游戲: 地心俠士
      SELECT * FROM kdb_job;
      SELECT * FROM "kdb_schedule"."kdb_jobsteplog";
      

      7. JDBC數據連接配置

      JDBC連接需要指定當前Schema,必要時指定Seachema

      URL: jdbc:kingbase8://172.1.1.153:54321/testdb?currentSchema=test
      
      posted @ 2025-06-01 13:19  _herbert  閱讀(97)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 日韩乱码人妻无码系列中文字幕 | 人人玩人人添人人澡超碰| 忘忧草社区在线www| 国产精品国产三级国产an| 国产成人a∨激情视频厨房| 久久久久久国产精品美女| 一级做a爰片在线播放| 18av千部影片| 久久精品无码中文字幕| 四虎永久免费影库二三区| 平罗县| 国日韩精品一区二区三区| 亚洲av无码精品色午夜蛋壳| 和艳妇在厨房好爽在线观看| 国产片AV国语在线观看手机版| 中文字幕在线国产精品| 国产AV国片精品有毛| 国产在线精品第一区二区| 四虎永久免费精品视频| 国产精品自拍中文字幕| 国产女同一区二区在线| 成人亚洲欧美成αⅴ人在线观看 | 91在线视频视频在线| 欧美刺激性大交| 吉川爱美一区二区三区视频 | 亚洲精品一区二区三区大桥未久| 免费无码无遮挡裸体视频在线观看 | 无棣县| 色一伊人区二区亚洲最大| 免费无码黄网站在线观看| 国产不卡在线一区二区| 2020国产成人精品视频| 日韩一区二区三区三级| √新版天堂资源在线资源| 天堂一区人妻无码| 国产在线无码不卡播放| av区无码字幕中文色| 国产精品一区在线免费看| 综合欧美视频一区二区三区| 免费人成视频在线观看网站| 国产精品一区二区色综合|