在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

在Oracle10g中如何使用包DBMS

123次阅读
没有评论

共计 2404 个字符,预计需要花费 7 分钟才能阅读完成。

行业资讯    
数据库    
关系型数据库    
在 Oracle10g 中如何使用包 DBMS_ADVANCED_REWRITE 实现新的查询重写功能

丸趣 TV 小编给大家分享一下在 Oracle10g 中如何使用包 DBMS_ADVANCED_REWRITE 实现新的查询重写功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

从 Oracle10g 版本 1 开始,提供了新的包 DBMS_ADVANCED_REWRITE 来实现查询重写。它允许你截获特定的 SQL 语句,并将
其重定义为另一个 SQL 语句。下面是一个简单的例子:

1、确认测试用户有必要的权限去运行

CONN sys/password AS SYSDBA
 
 GRANT EXECUTE ON DBMS_ADVANCED_REWRITE TO test;
 GRANT CREATE MATERIALIZED VIEW TO test;

[@more@]

2、创建测试用表

CONN test/test
 
 DROP TABLE rewrite_test_tab;
 
 CREATE TABLE rewrite_test_tab (
   id           NUMBER,
   description  VARCHAR2(50),
   CONSTRAINT rewrite_test_tab_pk PRIMARY KEY (id)
 );
 
 INSERT INTO rewrite_test_tab (id, description) VALUES (1, GLASGOW
 INSERT INTO rewrite_test_tab (id, description) VALUES (2, BIRMINGHAM
 INSERT INTO rewrite_test_tab (id, description) VALUES (3, LONDON
 COMMIT;
 
 EXEC DBMS_STATS.gather_table_stats(USER, rewrite_test_tab

3、查询测试表

SELECT * FROM rewrite_test_tab;
 
         ID DESCRIPTION
 ———- ————————————————–
          1 GLASGOW
          2 BIRMINGHAM
          3 LONDON
 
 3 rows selected.
 
 SQL

4、创建要替换成的 SQL 使用的视图,然后将上面的语句重定义为查询这个视图

CREATE OR REPLACE VIEW rewrite_test_tab_v AS
 SELECT id,
        INITCAP(description) AS description
 FROM   rewrite_test_tab
 ORDER BY description;
 
 BEGIN
   SYS.DBMS_ADVANCED_REWRITE.declare_rewrite_equivalence (
      name             = test_rewrite ,
      source_stmt      = SELECT * FROM rewrite_test_tab ,
      destination_stmt = SELECT * FROM rewrite_test_tab_v ,
      validate         = FALSE,
      rewrite_mode     = TEXT_MATCH
 END;
 /

5、初始化参数 QUERY_REWRITE_INTEGRITY 缺省值为 enforced,意味只有原始语句的输出和替换后语句的输出完全
  一致才会进行重写替换。而我们要实现替换后的输出跟原始输出是有差别的,所以需要将这个参数的值修改为
  TRUSTED 才行。

ALTER SESSION SET QUERY_REWRITE_INTEGRITY = TRUSTED;
 
 Session altered.
 
 SELECT * FROM rewrite_test_tab;
 
         ID DESCRIPTION
 ———- ————————————————–
          2 Birmingham
          1 Glasgow
          3 London
 
 3 rows selected.
 
 SQL

6、视图[USER|ALL|DBA]_REWRITE_EQUIVALENCES 中有这些重定义查询的相关信息

SELECT * FROM user_rewrite_equivalences;
 
 OWNER                          NAME
 —————————— ——————————
 SOURCE_STMT
 ——————————————————————————–
 DESTINATION_STMT                                                                 REWRITE_MO
 ——————————————————————————– ———-
 TEST                           TEST_REWRITE
 SELECT * FROM rewrite_test_tab
 SELECT * FROM rewrite_test_tab_v                                                 TEXT_MATCH
 
 
 1 row selected.
 
 SQL

看完了这篇文章,相信你对“在 Oracle10g 中如何使用包 DBMS_ADVANCED_REWRITE 实现新的查询重写功能”有了一定的了解,如果想了解更多相关知识,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-24发表,共计2404字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 四虎影视在线观看2413 | 国产综合视频在线观看 | 一区二区三区不卡视频 | 一区二区国产在线观看 | 美国美女一级毛片免费全 | 国产又黄又爽又色的免费视频 | 成人在线免费看片 | 久久黄色免费电影 | 欧美亚洲另类在线 | 日韩欧美亚洲国产精品字幕久久久 | 日本特大a级猛片在线观看 日本特黄aaaaaaa大片 | 草草影院私人免费入口 | 国产自制一区 | 日本黄网在线观看 | 无人区一线二线三线乱码 | 欧美伦费免费全部午夜最新 | 亚洲av无码精品色午夜app | 亚洲精品美女777777 | 国产a久久精品一区二区三区 | 国产成人不卡亚洲精品91 | 久久精品国产亚洲av麻豆~ | 国产精品高清一区二区三区不卡 | 国产午夜精品av一区二区麻豆 | 性久久久久久久久 | 精品久久久久久无码人妻 | 免费看成人国产一区二区三区 | 中文字幕网伦射乱中文 | 99ri国产| 九九热热九九 | 国产一级特黄高清免费大片 | 香蕉av久久一区二区三区 | 99久久精品国产一区二区成人 | 亚洲一区欧美一区 | 人妻少妇精品专区性色av | 免费观看性欧美大片无片 | 色一情一乱一伦一区二区三区 | 亚洲成人午夜影院 | 91亚洲国产成人久久精品网址 | 国产午夜亚洲精品不卡 | 精品久久久久久久九九九精品 | 国产日韩欧美在线观看 |