欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Oracle12.2怎么修改表的列名

這篇文章主要介紹“Oracle12.2怎么修改表的列名”,在日常操作中,相信很多人在Oracle12.2怎么修改表的列名問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”O(jiān)racle12.2怎么修改表的列名”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計制作、做網(wǎng)站、蘭西網(wǎng)絡(luò)推廣、重慶小程序開發(fā)公司、蘭西網(wǎng)絡(luò)營銷、蘭西企業(yè)策劃、蘭西品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供蘭西建站搭建服務(wù),24小時服務(wù)熱線:028-86922220,官方網(wǎng)址:aaarwkj.com

下面的例子將演示聯(lián)機重定義使用VPD策略的表,并修改表中的一個列名,原始表jy.orders的創(chuàng)建語句如下:

SQL> create table jy.orders(
  2  order_id number(12) primary key,
  3  order_date timestamp with local time zone constraint order_date_nn not null,
  4  order_mode varchar2(8),
  5  customer_id number(6) constraint order_customer_id_nn not null,
  6  order_status number(2),
  7  order_total number(8,2),
  8  sales_rep_id number(6),
  9  promotion_id number(6),
 10  constraint order_mode_lov
 11  check (order_mode in ('direct','online')),
 12  constraint order_total_min
 13  check (order_total >= 0));

Table created.

創(chuàng)建下面的jy.auth_orders函數(shù)來創(chuàng)建VPD策略

SQL> create or replace function jy.auth_orders(
  2  schema_var in varchar2,
  3  table_var in varchar2
  4  )
  5  return varchar2
  6  as
  7  return_val varchar2 (400);
  8  unm varchar2(30);
  9  begin
 10  select user into unm from dual;
 11  if (unm = 'jy') then
 12  return_val := null;
 13  else
 14  return_val := 'sales_rep_id = 159';
 15  end if;
 16  return return_val;
 17  end auth_orders;
 18  /

Function created.

下面執(zhí)行dbms_rls.add_policy過程來使用jy.auth_orders函數(shù)來給原始表jy.orders指定VPD策略:

SQL> begin
  2  dbms_rls.add_policy(
  3  object_schema => 'jy',
  4  object_name => 'orders',
  5  policy_name => 'orders_policy',
  6  function_schema => 'jy',
  7  policy_function => 'auth_orders');
  8  end;
  9  /

PL/SQL procedure successfully completed.

在這個例子中,被重定義后表中的sales_rep_id列被修改為sale_pid。當(dāng)在執(zhí)行重定義過程如可修改一個或多個列或列的數(shù)據(jù)類型,那么在start_refef_table過程中對于copy_vpd_opt參數(shù)必須指定dbms_redefinition.cons_vpd_manual。

1.用要執(zhí)行聯(lián)機重定義操作的用戶登錄數(shù)據(jù)庫

SQL> conn jy/jy@jypdb
Connected.

2.驗證原始表是否可以執(zhí)行聯(lián)機重定義

SQL> begin
  2  dbms_redefinition.can_redef_table(
  3  uname => 'jy',
  4  tname => 'orders',
  5  options_flag => DBMS_REDEFINITION.CONS_USE_PK);
  6  end;
  7  /

PL/SQL procedure successfully completed.

3.創(chuàng)建中間表

SQL> create table jy.int_orders(
  2  order_id number(12),
  3  order_date timestamp with local time zone,
  4  order_mode varchar2(8),
  5  customer_id number(6),
  6  order_status number(2),
  7  order_total number(8,2),
  8  sales_pid number(6),
  9  promotion_id number(6));

Table created.

注意,在中間表中sales_rep_id列被修改為sales_pid。

4.開始聯(lián)機重定義操作

SQL> begin
  2  dbms_redefinition.start_redef_table (
  3  uname => 'jy',
  4  orig_table => 'orders',
  5  int_table => 'int_orders',
  6  col_mapping => 'order_id order_id, order_date order_date, order_mode
  7  order_mode, customer_id customer_id, order_status
  8  order_status, order_total order_total, sales_rep_id
  9  sales_pid, promotion_id promotion_id',
 10  options_flag => dbms_redefinition.cons_use_pk,
 11  orderby_cols => null,
 12  part_name => null,
 13  copy_vpd_opt => dbms_redefinition.cons_vpd_manual);
 14  end;
 15  /

PL/SQL procedure successfully completed.

因為原始表與中間表存在不同的列名,那么copy_vpd_opt參數(shù)必須設(shè)置為dbms_redefinition.cons_vpd_manual。

5.對中間表創(chuàng)建VPD策略
5.1創(chuàng)建一個名為jy.auth_orders_sales_pid的函數(shù)來創(chuàng)建VPD策略,這里使用sales_pid列來代替sales_rep_id列。

SQL> create or replace function jy.auth_orders_sales_pid(
  2  schema_var in varchar2,
  3  table_var in varchar2
  4  )
  5  return varchar2
  6  as
  7  return_val varchar2 (400);
  8  unm varchar2(30);
  9  begin
 10  select user into unm from dual;
 11  if (unm = 'jy') then
 12  return_val := null;
 13  else
 14  return_val := 'sales_pid = 159';
 15  end if;
 16  return return_val;
 17  end auth_orders_sales_pid;
 18  /

Function created.

5.2執(zhí)行dbms_rls.add_policy過程來使用jy.auth_orders_sales_pid函數(shù)來為中間表增加VPD策略

SQL> begin
  2  dbms_rls.add_policy (
  3  object_schema => 'jy',
  4  object_name => 'int_orders',
  5  policy_name => 'orders_policy',
  6  function_schema => 'jy',
  7  policy_function => 'auth_orders_sales_pid');
  8  end;
  9  /

PL/SQL procedure successfully completed.

6.復(fù)制依賴對象

SQL> declare
  2  num_errors pls_integer;
  3  begin
  4  dbms_redefinition.copy_table_dependents(
  5  uname => 'jy',
  6  orig_table => 'orders',
  7  int_table => 'int_orders',
  8  copy_indexes => dbms_redefinition.cons_orig_params,
  9  copy_triggers => true,
 10  copy_constraints => true,
 11  copy_privileges => true,
 12  ignore_errors => true,
 13  num_errors => num_errors);
 14  end;
 15  /

PL/SQL procedure successfully completed.

注意在這里ignore_errors參數(shù)被設(shè)置為true。原因是因為原始表對于列sales_rep_id存在索引與約束,并且在中間表中列被修改為sales_pid。

7.查詢dba_redefinition_errors視圖來檢查是否存在錯誤

SQL> set long 8000
SQL> set pages 8000
SQL> column object_name heading 'object name' format a20
SQL> column base_table_name heading 'base table name' format a10
SQL> column ddl_txt heading 'ddl that caused error' format a40
SQL> select object_name, base_table_name, ddl_txt from dba_redefinition_errors;

no rows selected

8.可選操作同中間表

SQL> begin
  2  dbms_redefinition.sync_interim_table(
  3  uname => 'jy',
  4  orig_table => 'orders',
  5  int_table => 'int_orders');
  6  end;
  7  /

PL/SQL procedure successfully completed.

9.完成聯(lián)機重定義操作

SQL> begin
  2  dbms_redefinition.finish_redef_table(
  3  uname => 'jy',
  4  orig_table => 'orders',
  5  int_table => 'int_orders');
  6  end;
  7  /

PL/SQL procedure successfully completed.

SQL> desc jy.orders
Name         Type                              Nullable Default Comments
------------ --------------------------------- -------- ------- --------
ORDER_ID     NUMBER(12)
ORDER_DATE   TIMESTAMP(6) WITH LOCAL TIME ZONE
ORDER_MODE   VARCHAR2(8)                       Y
CUSTOMER_ID  NUMBER(6)
ORDER_STATUS NUMBER(2)                         Y
ORDER_TOTAL  NUMBER(8,2)                       Y
SALES_PID    NUMBER(6)                         Y
PROMOTION_ID NUMBER(6)                         Y

10.等待任何查詢中間表的語句執(zhí)行完成后將其刪除

SQL> drop table jy.int_orders;
Table dropped

到此重定義操作就完成了。

到此,關(guān)于“Oracle12.2怎么修改表的列名”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

網(wǎng)頁名稱:Oracle12.2怎么修改表的列名
URL標(biāo)題:http://aaarwkj.com/article44/pjcsee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站策劃、網(wǎng)站營銷微信小程序、自適應(yīng)網(wǎng)站網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
亚洲国产精品一区二区av不卡| 日韩毛片资源在线观看| 欧美黄色一区二区在线观看| 久久亚洲av电影网站| 国产亚洲一区二区三区av| 国产欧美日韩精品国产| 一区二区三区在线观看美女视频| 成年人收看黄色一二级片| 欧美亚洲中文字幕高清| 久久草福利视频在线观看| 国产精品蜜臀av在线一区| 国产精品中文字幕第一页| 周妍希浴室视频色哟哟| 成人福利在线观看免费视频| 国产福利传媒在线观看| 欧美日韩欧美日韩一区二区| 国产乱码精品一区二区三区爽爽爽| 99国产精品热久久婷婷| 日韩中文字幕在线二区| 一区二区三区欧美小黄片| 久久国产精品乱码电影| 在线观看视频网站一卡二卡| 四虎影院成人精品久久| 高级会所口爆视频在线播放视频| 一区二区三区国产精品乱码| 亚洲日本一区二区三区电影| 香蕉视频欧美日韩国产| 日本高清中文精品在线不卡| av色狠狠一区二区三区| 国产精品黄黄久久久免费| 欧美十日本亚洲激情视频| 特黄特色的日本大片| 国产91黑丝在线播放| 国产在线拍揄自揄视频不卡99| 欧美日韩精品视频在线| 97碰碰视频在线观看| 亚洲国产日韩欧美一级| 国产精品传媒在线观看网站| 国内激情自拍偷拍视频| 色婷婷久久综合中文久久| 少妇人妻系列中文在线|