<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    2009年3月12日

    ORA-12514: TNS: 監聽進程不能解析在連接描述符中給出的服務名稱

    打開Net Manager,選中服務名稱,檢查服務標識欄里的服務名輸入是否正確。該服務名必須與服務器端監聽器配置的全局數據庫名一致。

     

    方法二: 在TOAD登陸時使用全局名稱:

    zhouzhenhua:1521/javafan

    posted @ 2009-06-11 15:04 JavaBegger 閱讀(394) | 評論 (0)編輯 收藏

    個人評價,僅供參考!

    人品不錯,挺讓人放心的,不會像有的男的看起來很花花的,還有就是沒有明顯的缺點,這可是很重要的

    我現在看到的男的歪瓜裂棗的太多了

    posted @ 2009-05-07 17:40 JavaBegger 閱讀(173) | 評論 (0)編輯 收藏

    PL/SQL集合方法

    PL/SQL集合方法是用于操縱集合變量的內置函數或過程。

    語法:

    collection_name.method_name[(parameter)]

    注意:集合方法extend和trim不適用于PL/SQL表

    1. exists

    2. count

    3. limit

    返回VARRAY變量所允許的最大元素個數。嵌套表和PL/SQL表的元素個數無限制,所以調用該方法時返回NULL。

    4. first和last

    第一個元素的下標,最后一個元素的下標

    ename_table(ename_table.first)

    ename_table(ename_table.last)

    5. prior和next

    前一個元素的下標,后一個元素的下標

    ename_table(ename_table.prior(1))

    ename_table(ename_table.next(1))

    6.extend

    該方法為PL/SQL集合變量增加元素,只適用于嵌套表和VARRAY

    注意:當使用EXTEND增加元素時,不能為未初始化的集合變量增加元素。

    EXTEND方法有三種調用方法:

    • EXTEND:添加一個null元素。
    • EXTEND(n):添加n個null元素
    • EXTEND(n,i):添加n個元素,元素值與第i個元素相同。

    7. trim

    該方法用于從集合變量尾部刪除元素,并且只適用于嵌套表和VARRAY

    TRIM共有兩種調用方法:

    • TRIM:       從集合變量尾部刪除一個元素。
    • TRIM(n):   從集合變量尾部刪除n個元素。

    8. delete

    用于刪除特定元素,只適用于嵌套表和PL/SQL表

    DELETE有三種調用方法:

    • DELETE:         刪除所有的元素
    • DELETE(n):    刪除第n個元素。
    • DELETE(m,n):刪除m~n之間所有的元素。

    posted @ 2009-03-18 11:14 JavaBegger 閱讀(390) | 評論 (0)編輯 收藏

    PL/SQL集合

    一,PL/SQL表

    它只能作為PL/SQL類型,不能作為表列類型。

    下標可以為負值,并且元素個數無限制。

    下標類型key_type: 包括BINARY_INTEGER、PLS_INTEGER、VARCHAR2。

    語法:

    TYPE  type_name  IS  TABLE  OF  element_type

    [NOT  NULL]  INDEX  BY key_type;

    identifier type_name;

     

    例如:

    DECLARE
       TYPE category_table_type IS TABLE OF VARCHAR2 (40)
          INDEX BY VARCHAR2 (40);

       category_table   category_table_type;
    BEGIN
       category_table ('長沙') := '長沙,我愛你!';
       DBMS_OUTPUT.put_line (category_table ('長沙'));
    END;

     

    第二,嵌套表

    可以作為表列的數據類型使用。

    當使用嵌套表元素時,需要使用構造方法初始化嵌套表變量。

    下標從1開始計算。

     

    語法:

    TYPE type_name IS TABLE OF element_type;

    identifier  type_name;

     

    例子:

    DECLARE
       TYPE category_table_type IS TABLE OF tb_out_service.servicename%TYPE;

       category_table   category_table_type;
    BEGIN
       category_table := category_table_type ('全省', '長沙', '常德');

       SELECT servicename
         INTO category_table (3)
         FROM tb_out_service
        WHERE serviceid = '&serviceid';

       DBMS_OUTPUT.put_line (category_table (1));
       DBMS_OUTPUT.put_line (category_table (2));
       DBMS_OUTPUT.put_line (category_table (3));
    END;

     

    第三,變長數組(VARRAY)

    需要使用構造方法初始化VARRAY變量。

    語法:

    TYPE type_name is VARRAY(size_limit) OF element_type [NOT NULL];

    identifier type_name;

    posted @ 2009-03-18 10:50 JavaBegger 閱讀(231) | 評論 (0)編輯 收藏

    PL/SQL記錄

    第一,定義PL/SQL記錄

    1. 自定義PL/SQL記錄

    2. 使用%ROWTYPE屬性定義記錄變量

    舉例:

    -----------------------------------------------

    DECLARE
    --自定義記錄類型
       TYPE emp_record_type IS RECORD (
          serviceid    tb_out_service%TYPE,
          sericename   tb_out_service%TYPE
       );

       emp_record        emp_record_type;


       --使用%ROWTYPE屬性定義記錄變量
       category_record   tb_out_service%ROWTYPE;
    BEGIN
       NULL;
    END;

    第二,使用PL/SQL記錄

    DECLARE
       --使用%ROWTYPE屬性定義記錄變量
       category_r   tb_out_service%ROWTYPE;

    BEGIN

        ...

    UPDATE tb_out_service
          SET ROW = category_r                                     --注意ROW關鍵字
        WHERE serviceid = category_r.serviceid;

        ...

    INSERT INTO tb_out_service
            VALUES category_r;              --在values子句中使用記錄成員播入數據。

        ...

    END;

    posted @ 2009-03-18 09:45 JavaBegger 閱讀(190) | 評論 (0)編輯 收藏

    使用事務控制語句

    commit

    rollback

    savepoint   a1

    posted @ 2009-03-17 11:08 JavaBegger 閱讀(203) | 評論 (0)編輯 收藏

    SQL游標

    隱含游標:專門處理SELECT INTO、INSERT、UPDATE以及DELETE語句。

    顯示游標:用于處理多行的SELECT語句。

    當在PL/SQL塊中執行INSERT、UPDATE及DELETE語句時,為了取得DML語句作用的結果,需要使用SQL游標屬性。

    第一,游標的4種屬性

    1. SQL%ISOPEN

    該屬性永遠都是false,沒有實際意義。

    2. SQL%FOUND

    語句是否操作成功。當SQL語句有作用行時為TRUE.

    3. SQL%NOTFOUND

    LOOP

    FETCH  emp_cursor  INTO   v_name, v_deptno;

    EXIT  WHEN  emp_cursor%NOTFOUND;

    ...

    END LOOP;

     

    4. SQL%ROWCOUNT

    返回SQL語句所作用的總計行數。

    該屬性用于返回已提取的實際行數。

     

    第二,顯示游標專用于處理SELECT語句返回的多行數據。

    • 定義游標:

    CURSOR  cursor_name  IS  select_statement;

    • 打開游標:

    open  cursor_name;

    • 提到數據:

    FETCH  cursor_name  INTO  var1[, var2, ...];

    • 關閉游標:

    CLOSE  cursor_name;

    例子:

    DECLARE
       CURSOR category_cursor
       IS
          SELECT *
            FROM tb_out_service t
           WHERE t.servicename LIKE '長沙%';

       TYPE category_table_type IS TABLE OF tb_out_service%ROWTYPE
          INDEX BY BINARY_INTEGER;

       category_table   category_table_type;
       i                INT;
    BEGIN
       OPEN category_cursor;

       LOOP
          i := category_cursor%ROWCOUNT + 1;

          FETCH category_cursor
           INTO category_table (i);

          EXIT WHEN category_cursor%NOTFOUND;
          DBMS_OUTPUT.put_line (   RPAD (category_table (i).serviceid, 30)
                                || '  '
                                || category_table (i).servicename
                               );
       END LOOP;

       CLOSE category_cursor;
    END;

     

    第三,游標FOR循環

    語法:

    FOR  record_name  IN  cursor_name  LOOP

    statement;

    ...

    END  LOOP;

    注意:當使用游標FOR循環時,既可以在定義部分定義游標,也可以直接在FOR循環中使用SELECT語句。

     

    第四,參數游標

    CURSOR cursor_name(parameter_name datatype) is select_statement;

    OPEN cursor_name(parameter_value)

    注意:

    定義參數只能指定數據類型,不能指定長度。

    另外,應該在游標的select語句的where子句中引用游標參數,否則失去了定義參數游標的意義。

    ---------------------------------------------------------------------------------------------------------------------

    DECLARE
       CURSOR category_cursor (NAME VARCHAR2)
       IS
          SELECT *
            FROM tb_out_service t
           WHERE t.servicename LIKE NAME || '%';
    BEGIN
       FOR category_record IN category_cursor ('吉首')
       LOOP
          DBMS_OUTPUT.put_line (   RPAD (category_record.serviceid, 30)
                                || '  '
                                || category_record.servicename
                               );
       END LOOP;
    END;

     

    第五,更新或刪除游標行

    語法

    CURSOR cursor_name IS select_statement

    FOR UPDATE [OF column_reference]  [NOWAIT];

    UPDATE table_name SET column=..  WHERE CURRENT OF cursor_name;

    DELETE FROM table_name WHERE CURRENT OF cursor_name;

     

    注意

    1. OF子句的格式:column_reference為table_name.column_name

    2. WHERE CURRENT OF cursor_name, 更新或者刪除游標所在行的數據。

    3. 在使用游標更新或刪除數據時,定義游標必須帶有FOR  UPDATE子句,并且在更新或者刪除游標時必須帶有WHERE CURRENT OF 子句。

    當查詢語句涉及到多張表時,如果不帶有OF子句,會在多張表上同時加鎖,如果只在特定的表上加鎖,需要帶有OF子句。

     

    DECLARE
       CURSOR category_cursor (NAME VARCHAR2)
       IS
          SELECT        *
                   FROM tb_out_service t
                  WHERE t.servicename LIKE NAME || '%'
          FOR UPDATE OF t.querystr;

       v_name   CONSTANT VARCHAR2 (20) := '長沙';
    BEGIN
       FOR category_record IN category_cursor (v_name)
       LOOP
          IF INSTR (category_record.servicename, v_name || '——') <> 1
          THEN
             DBMS_OUTPUT.put_line (   'delete: '
                                   || RPAD (category_record.serviceid, 30)
                                   || '  '
                                   || category_record.servicename
                                  );

             DELETE FROM tb_out_service
                   WHERE CURRENT OF category_cursor;
          ELSE
             DBMS_OUTPUT.put_line (   'upate: '
                                   || RPAD (category_record.serviceid, 30)
                                   || '  '
                                   || category_record.servicename
                                  );

             UPDATE tb_out_service t
                SET t.querystr = v_name || '——' || t.servicename
              WHERE CURRENT OF category_cursor;
          END IF;
       END LOOP;
    END;

     

    第六, 游標變量

    游標變量是基于REF CURSOR類型所定義的變量,它實際上是指向內存地址的指針。顯式游標只能定義靜態游標,而游標變量可以在打開時指定其所對應的SELECT語句,從而實現動態游標。

    • 定義游標:

    TYPE  ref_type_name  IS  REF  CURSOR  [RETURN  return_type];

    cursor_variable  ref_type_name;

    • 打開游標:

    OPEN  cursor_name  FOR  select_statement;

    • 提到數據:

    FETCH  cursor_variable  INTO  var1[, var2, ...];

    • 關閉游標:

    CLOSE  cursor_variable;

    注意:

    不能在遠程子程序中使用游標變量。

    當指定子查詢時,不能帶有FOR UPDATE子句。

    當指定RETURN子句時,返回類型必須使用PL/SQL記錄類型。

    例子:

    DECLARE
       TYPE category_cursor_type IS REF CURSOR
          RETURN tb_out_service%ROWTYPE;

       category_cursor   category_cursor_type;
       category_record   tb_out_service%ROWTYPE;
       v_name   CONSTANT VARCHAR2 (40)            := '長沙';
    BEGIN
       OPEN category_cursor FOR
          SELECT *
            FROM tb_out_service t
           WHERE t.servicename LIKE v_name || '%';

       LOOP
          FETCH category_cursor
           INTO category_record;

          EXIT WHEN category_cursor%NOTFOUND;
          DBMS_OUTPUT.put_line (   RPAD (category_record.serviceid, 30)
                                || '  '
                                || category_record.servicename
                               );
       END LOOP;
    END;

    posted @ 2009-03-17 11:07 JavaBegger 閱讀(634) | 評論 (0)編輯 收藏

    在PL/SQL塊中可以使用的SQL函數

    編寫PL/SQL時,可以直接使用大多數的單行SQL函數,這些單行函數包括數字函數、字符函數、轉換函數及日期函數。

    注意:某些SQL函數只能在SQL語句中引用,而不能直接在PL/SQL語句中引用,這些SQL函數包括GREATEST、LEAST、DECODE及所有的分組函數(如SUM)。

    posted @ 2009-03-16 10:51 JavaBegger 閱讀(237) | 評論 (0)編輯 收藏

    oracle數據庫約束

    約束用于確保數據庫數滿足業務規則。

    約束包括:NOT NULL,UNIQUE,PRIMARY KEY,FOREIGN KEY以及CHECK等5種類型。

    建立主鍵約束和唯一約束時,Oralce會基于約束列自動建立唯一索引;主鍵約束不允許為NULL,唯一約束允許為NULL。

    一張表只能建立一個主鍵約束。

    建表約束:NOT NULL只能在列級定義;其它4種既可以在列級定義,也可以在表級定義。復合主鍵約束只能在表級定義。

    維護約束:增加NOT NULL約束時必須使用MODIFY子句,而增加其它約束時需要使用ADD子句。

     

    第一, 定義約束

    ---------------------------------------------

    語法

    CREATE  TABLE  [SCHEMA.]table_name(

    column_name  datatype  [DEFAULT  expr]  [column_constraint],

    ...

    [table_constraint][, ...]

    );

     

    例子

    CREATE TABLE tt_user_info
    (
      ID    VARCHAR2(20 BYTE),
      NAME  VARCHAR2(20 BYTE)                       NOT NULL,
      category_id VARCHAR2(20 BYTE)  REFERENCES tb_out_service(serviceid),
      remark   VARCHAR2(1000)
    );

    ALTER TABLE tt_user_info ADD (
      CHECK ( LENGTH(NAME)>2),
      PRIMARY KEY (ID),
      UNIQUE (NAME)
      );

     

    說明

    1. NOT NULL,非空約束

    not null

    2. UNIQUE,唯一約束

    UNIQUE (COL_NAME)

    3. PRIMARY KEY,主鍵約束

    primary key (col_name1 [, col_name2])

    4. FOREIGN KEY,外鍵約束

    它有三種類型:

    references  primary_table(primary_col)

    on delete cascade

    on delete set null

    5. CHECK,檢查約束

    check (money > 1000)

     

    第二, 維護約束

    ----------------------------------------

    1. 增加約束

    NOT NULL使用ALTER MODIFY子句,其它的使用ALTER  ADD子句

    -------------------------------

    CREATE TABLE tt_user(NAME VARCHAR2(20));

    ALTER TABLE tt_user MODIFY user_name NOT NULL;
    ALTER TABLE tt_user ADD CONSTRAINT constraint_name UNIQUE(NAME);
    ALTER TABLE tt_user ADD CONSTRAINT constraint_name PRIMARY KEY(NAME);
    ALTER TABLE tt_user ADD parentid VARCHAR2(20)
        CONSTRAINT constraint_name
            REFERENCES tb_out_service(serviceid);

     

    2. 修改約束名

    ALTER TABLE table_name RENAME CONSTRAINT old_constraint_name TO new_constraint_name

     

    3. 刪除約束

    ALTER TABLE table_name DROP CONSTRAINT constraint_name

     

    4. 禁止約束

    ALTER TABLE table_name DISABLE CONSTRAINT constraint_name  [CASCADE];

     

    5.激動約束

    ALTER TABLE table_name ENABLE CONSTRAINT constraint_name;

     

    第三. 顯示約束信息

    所有約束信息

    SELECT *
      FROM user_constraints

     

    用戶約束所對應的表列

    SELECT *
      FROM user_cons_columns;

    posted @ 2009-03-12 15:03 JavaBegger 閱讀(937) | 評論 (0)編輯 收藏

    Oracle建立臨時表

    臨時表分為兩種,它們只在事務或者會話內有效。

    ------------------------------------

    A. 事務臨時表(缺省):

    CREATE GLOBAL TEMPORARY TABLE table_name(col_name INT);

    CREATE GLOBAL TEMPORARY TABLE table_name(col_name INT) ON COMMIT DELETE ROWS;

    ------------------------------------

    B. 會話臨時表:

    CREATE GLOBAL TEMPORARY TABLE table_name(col_name INT) ON COMMIT PRESERVE ROWS;

    posted @ 2009-03-12 11:43 JavaBegger 閱讀(799) | 評論 (0)編輯 收藏

    oracle數據庫表刪除操作

    A. 刪除數據

    -----------------------------------------

    方法一:

    delete(DML)

    只是刪除數據,并沒有釋放空間

    操作可以回退

    例如:

    DELETE FROM table_name;

     

    方法二:

    truncate table(DDL)

    刪除數據,釋放表空間,操作不能回退

    例如:

    TRUNCATE  TABLE table_name;

     

    B. 刪除庫表

    ------------------------------------------

    DROP TABLE table_name [CASCADE CONSTRAINTS] [purge]

    CASCADE CONSTRAINTS: 表示是否級聯刪除外鍵約束

     

    C. 恢復刪除的庫表(10g)

    FLASHBACK TABLE table_name TO BEFORE DROP;

    posted @ 2009-03-12 11:35 JavaBegger 閱讀(417) | 評論 (0)編輯 收藏

    oracle中的幾個數據字典視圖

         摘要:   閱讀全文

    posted @ 2009-03-12 11:20 JavaBegger 閱讀(203) | 評論 (0)編輯 收藏

    <2009年3月>
    22232425262728
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    導航

    統計

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲天天做日日做天天欢毛片| 久久精品成人免费观看| 成人黄软件网18免费下载成人黄18免费视频 | 亚洲欧美日韩中文字幕在线一区| 久久一本岛在免费线观看2020| 亚洲av中文无码乱人伦在线r▽| 91成人免费福利网站在线| 国产亚洲成人久久| jizz免费一区二区三区| 超清首页国产亚洲丝袜| 人妻在线日韩免费视频| 亚洲国产精久久久久久久| 3d成人免费动漫在线观看| 亚洲精品网站在线观看你懂的| 美女被cao免费看在线看网站| 亚洲免费视频观看| 久久精品女人天堂AV免费观看| 亚洲一区二区久久| 国产yw855.c免费视频| 一本到卡二卡三卡免费高| 精品亚洲综合久久中文字幕| 蜜臀AV免费一区二区三区| 亚洲综合色一区二区三区| 成人免费看黄20分钟| 亚洲国产成人精品女人久久久| 亚洲精品乱码久久久久久中文字幕| 日本三级在线观看免费| 中文字幕亚洲综合久久男男| 婷婷亚洲综合五月天小说在线| 毛片a级毛片免费观看品善网| 亚洲国产高清在线精品一区| 久久国产乱子伦精品免费看| 成人在线免费看片| 亚洲AV日韩AV永久无码下载| 中文字幕看片在线a免费| 日本大片在线看黄a∨免费| 亚洲天堂一区二区三区四区| 99re视频精品全部免费| 亚洲尤码不卡AV麻豆| 亚洲一级片免费看| 中文字幕人成无码免费视频|