與某一行的數據類型一致%type-->與某個字段的數據類型一致**/--創建數據鏈連接不同oracle實例--創建同義詞同義詞在一個數據庫中不同用戶之間可以共享數據庫對象--PUBLIC公有同義詞可被數據庫中所有用戶使用--私有的同義詞只能被當前的用戶使用測試code--orac" />

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

oracle之type、database_link、synonym

系統 2132 0
? ??
    --type用法
/**
多行多列--動態游標(ref cursor)
多行單列--表(table)
單行多列--記錄(record)
自定義類型--對象(object)

%rowtype  -->與某一行的數據類型一致
%type     -->與某個字段的數據類型一致

**/
  

    --創建數據鏈 連接不同oracle實例
  

    --創建同義詞  同義詞在一個數據庫中不同用戶之間可以共享數據庫對象
--PUBLIC 公有同義詞可被數據庫中所有用戶使用
--私有的同義詞只能被當前的用戶使用
  




測試code

    --oracle之type、database_link、synonym

--創建測試數據
CREATE TABLE test_TABLES AS SELECT * from USER_TABLES;
SELECT * from test_TABLES TT;

--type用法
/**
多行多列--動態游標(ref cursor)
多行單列--表(table)
單行多列--記錄(record)
自定義類型--對象(object)

%rowtype  -->與某一行的數據類型一致
%type     -->與某個字段的數據類型一致

**/

--游標 多行多列
--CURSOR
CREATE OR REPLACE PROCEDURE PRO_REF_CUR_TEST
AS
 --定義動態游標數據類型
  TYPE CUSTOM_CURSOR IS REF CURSOR;
  --1、定義游標變量
  test_CUSTOM_CURSOR CUSTOM_CURSOR;
  REC               test_TABLES%ROWTYPE;
BEGIN
  --2、打開游標
  OPEN test_CUSTOM_CURSOR FOR
    SELECT * FROM test_TABLES;
  LOOP
     --3、獲取值
    FETCH test_CUSTOM_CURSOR
      INTO REC;
      --4、退出
    EXIT WHEN test_CUSTOM_CURSOR%NOTFOUND;
    DBMS_OUTPUT.PUT_LINE(REC.TABLE_NAME || '    ' || REC.TABLESPACE_NAME || '    ' ||
                         TO_CHAR(REC.LAST_ANALYZED, 'yyyy-mm-dd'));
  END LOOP;
  --5、關閉
  CLOSE test_CUSTOM_CURSOR;
EXCEPTION
  WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE(SQLCODE || SQLERRM);
END PRO_REF_CUR_TEST;

--TABLE 多行單列
CREATE OR REPLACE PROCEDURE PRO_table_TEST
AS
--定義表 類似于數組的使用  每一個元素數據類型為VARCHAR2(20) 索引值為BINARY_INTEGER
 TYPE CUSTOM_TABLE IS TABLE OF VARCHAR2(20) INDEX BY BINARY_INTEGER;
test_CUSTOM_TABLE CUSTOM_TABLE;
BEGIN
  --索引值只要為BINARY_INTEGER即可
  test_CUSTOM_TABLE(1) := '劉德華';
  test_CUSTOM_TABLE(4) := '張學友';
  test_CUSTOM_TABLE(-20) := '郭富城';
  test_CUSTOM_TABLE(-10) := '郭富城';
  DBMS_OUTPUT.PUT_LINE(test_CUSTOM_TABLE(1) || '    ' ||
                       test_CUSTOM_TABLE(4));
  DBMS_OUTPUT.PUT_LINE('按照索引值進行排序');
  --table中的函數
  DBMS_OUTPUT.PUT_LINE(test_CUSTOM_TABLE.FIRST || '    ' ||
                       test_CUSTOM_TABLE.NEXT(test_CUSTOM_TABLE.FIRST) ||
                       '    ' ||
                       test_CUSTOM_TABLE.PRIOR(test_CUSTOM_TABLE.LAST) ||
                       '    ' || test_CUSTOM_TABLE.LAST);
  DBMS_OUTPUT.PUT_LINE('總數:' || test_CUSTOM_TABLE.COUNT);
EXCEPTION
  WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE(SQLCODE || SQLERRM);
END PRO_table_TEST;


--記錄
--RECORD 單行多列
CREATE OR REPLACE PROCEDURE PRO_Record_TEST
AS
--定義一行記錄
TYPE CUSTOM_RECORD IS RECORD(TABLE_NAME TEST_TABLEs.Table_Name%TYPE,
                                     TABLESPACE_NAME Test_Tables.Tablespace_Name%TYPE,
                                     LAST_ANALYZED Test_Tables.Last_Analyzed%TYPE);
--定義記錄變量
test_CUSTOM_RECORD CUSTOM_RECORD;
BEGIN
  SELECT TABLE_NAME, TABLESPACE_NAME, LAST_ANALYZED
    INTO test_CUSTOM_RECORD
    FROM test_TABLES
   WHERE TABLE_NAME = 'TEST_TABLE';
  DBMS_OUTPUT.PUT_LINE(test_CUSTOM_RECORD.TABLE_NAME || '    ' ||
                       test_CUSTOM_RECORD.TABLESPACE_NAME || '    ' ||
                       TO_CHAR(test_CUSTOM_RECORD.LAST_ANALYZED, 'yyyy-mm-dd'));
EXCEPTION
  WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE(SQLCODE || SQLERRM);
END PRO_Record_TEST;


--創建自定義類型
CREATE TYPE CUSTOM_OBJECT AS OBJECT(AGE INT, NAME VARCHAR2(20));
CREATE TABLE CUSTOM_TABLE(TABLE_NAME INT, OTHER CUSTOM_OBJECT);
INSERT INTO CUSTOM_TABLE VALUES (1, CUSTOM_OBJECT(2, 'hello'));
SELECT * FROM CUSTOM_TABLE;



--創建數據鏈 連接不同oracle實例
--查看實例名
SELECT * from GLOBAL_NAME;
--創建數據鏈
CREATE DATABASE LINK u_other CONNECT TO u2 IDENTIFIED BY u2 USING '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(service_name=ORCL)
)
)';
--查詢數據鏈接
SELECT * from dba_db_links dd WHERE dd.DB_LINK='U_OTHER';
DROP DATABASE LINK u_other;
SELECT * from user_tables@u_other;


--創建同義詞  同義詞在一個數據庫中不同用戶之間可以共享數據庫對象
--PUBLIC 公有同義詞可被數據庫中所有用戶使用
--私有的同義詞只能被當前的用戶使用
CREATE PUBLIC SYNONYM ut FOR u2.user_tables;
DROP PUBLIC SYNONYM ut;
SELECT * from ut;
--查詢同義詞
SELECT * from Dba_Synonyms  ds WHERE ds.synonym_name='UT';













  


測試結果

1、測試游標

    begin
  -- Call the procedure
  pro_ref_cur_test;
end;
  

    PLAN_TABLE    UNDER    2014-10-29
EMPLOYEE    UNDER    2014-09-18
CREATE$JAVA$LOB$TABLE    UNDER    2014-09-17
IDCARD_INFO    UNDER    2014-11-12
PERSON_INFO    UNDER    2014-11-12
CUSTOM_TABLE    UNDER    2014-12-24
PC_CHECK_DETAIL        2014-09-06
STUDENT    UNDER    2014-10-29
TEST_TABLE    UNDER    2014-09-21
  

2、測試表

    begin
  -- Call the procedure
  pro_table_test;
end;
  

    劉德華    張學友
按照索引值進行排序
-20    -10    1    4
總數:4

  

3、測試記錄

    begin
  -- Call the procedure
  pro_record_test;
end;
  

    TEST_TABLE    UNDER    2014-09-21
  


4、自定義類型

    --創建自定義類型
CREATE TYPE CUSTOM_OBJECT AS OBJECT(AGE INT, NAME VARCHAR2(20));
CREATE TABLE CUSTOM_TABLE(TABLE_NAME INT, OTHER CUSTOM_OBJECT);
INSERT INTO CUSTOM_TABLE VALUES (1, CUSTOM_OBJECT(2, 'hello'));
SELECT * FROM CUSTOM_TABLE;
  



oracle之type、database_link、synonym


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 一区二区三区国产免费 | 91视频在线观看免费 | 免费一级片观看 | 久久狠狠色狠狠色综合 | 啪一啪日一日 | 7777精品伊人久久久大香线蕉 | 国产综合精品久久亚洲 | 国产精品久久久久久搜索 | 国产精品高潮呻吟久久aⅴ码 | 狠狠躁夜夜躁人人爽天天段 | 日韩精品视频免费 | 欧美日韩乱 | 一级做一级爱a做片性视频视频 | 国产精品成人无码A片免费网址 | 精品亚洲永久免费精品 | 激情婷婷小说 | 欧美综合伊人久久 | 亚洲第一页在线播放 | 中文字幕精品一区二区三区精品 | 91精品欧美久久久久久动漫 | 成人午夜 | 成人午夜在线观看 | 九九99国产精品视频 | 亚洲一区二区免费看 | 高清视频在线观看 免费 | 天天操天天拍 | 国产精品久久99 | 亚洲高清中文字幕综合网 | a一级黄色片| 影音先锋中文字幕在线 | 精品视频手机在线观看免费 | av色偷偷 | 久久精品视频在线观看 | 天天拍夜夜添久久精品中文 | 在线观看特色大片免费网站 | 亚洲国产精品第一页 | 国产一区免费 | 免费黄色小视频 | 国产精品爱久久久久久久电影 | 天天干夜夜曰 | 三级免费黄色片 |