ITPub博客

首页 > 数据库 > Oracle > Oracle user_tab_partitions.high_value字段 LONG类型 读取的几种方法

Oracle user_tab_partitions.high_value字段 LONG类型 读取的几种方法

原创 Oracle 作者:maohaiqing0304 时间:2014-10-05 13:57:40 2 删除 编辑


标题:  Oracle user_tab_partitions.high_value字段 LONG类型 读取的几种方法 

作者:lōττéry©版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.]



由于user_tab_partitions.high_value字段是long,直接用sql窗口查不到该字段信息,用to_char.转换不可以,那这种情况怎么能实现user_tab_partitions和其他表关联或显示long字段呢?


具体步骤依据如下:

① 追加到表查看:
SQL> desc user_tab_partitions
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 TABLE_NAME                                         VARCHAR2(30 )
 COMPOSITE                                          VARCHAR2(3 )
 PARTITION_NAME                                     VARCHAR2(30 )
 SUBPARTITION_COUNT                                 NUMBER
 HIGH_VALUE                                         LONG
 ...

SQL> 

SQL> create table lottery (table_name VARCHAR2( 30),partition_name VARCHAR2 (30),aa CLOB);

SQL> insert into lottery select p.table_name,p.partition_name,to_lob(p.high_value) from user_tab_partitions p;


② 用循环打印/保存表方式
例如:
DECLARE
  CURSOR C_CONS IS
    SELECT P.TABLE_NAME, P.PARTITION_NAME, P.HIGH_VALUE
      FROM USER_TAB_PARTITIONS P;
  P_HIGH_VALUE     VARCHAR2(4000);
  P_TABLE_NAME     VARCHAR2(4000);
  P_PARTITION_NAME VARCHAR2(4000);
BEGIN
  EXECUTE IMMEDIATE ('CREATE TABLE LOTTERY (TABLE_NAME VARCHAR2(4000),PARTITION_NAME VARCHAR2(4000),HIGH_VALUE VARCHAR2(4000))');
  FOR P_C_CONS IN C_CONS LOOP
    P_HIGH_VALUE     := P_C_CONS.HIGH_VALUE;
    P_TABLE_NAME     := P_C_CONS.TABLE_NAME;
    P_PARTITION_NAME := P_C_CONS.PARTITION_NAME;
    EXECUTE IMMEDIATE ('INSERT INTO LOTTERY VALUES(''' || P_TABLE_NAME ||
                      ''',''' || P_PARTITION_NAME || ''',''' ||
                      P_HIGH_VALUE || ''')');
    --DBMS_OUTPUT.PUT_LINE('INSERT INTO LOTTERY VALUES(''' || P_TABLE_NAME ||''',''' || P_PARTITION_NAME || ''',''' ||P_HIGH_VALUE || ''')');
  END LOOP;
  COMMIT;
END;


③ 用【plsql developer】command window...查询
例如:
SELECT P.TABLE_NAME, P.PARTITION_NAME, P.HIGH_VALUE FROM USER_TAB_PARTITIONS P;




此条目发表在 Oracle 分类目录。将固定连接加入收藏夹。



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28602568/viewspace-1289283/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
.

注册时间:2013-03-13

  • 博文量
    117
  • 访问量
    2626236