当前位置:  数据库>oracle
本页文章导读:
    ▪Oracle编程入门经典 第10章 PLSQL      【摘要】我们以介绍性的概念分析了在Oracle中进行PL/SQL编程。讨论了基于程序块的编程、以及PL/SQL怎样从逻辑上将代码块划分为职责区域,例如变量和常量声明、执行代码、以及错误控制代码.........
    ▪ORACLE在线重定义--将普通表转化为分区表      10gR2需要将一个普通表转为按月分区提高查询效率测试如下:一、建立测试表SQL> CREATE TABLE T(ID NUMBER ,TIME DATE);Table created.SQL> DESC T; Name Null? Type --------------------.........
    ▪演示将数字转换成英文拼写      本文内容 软件环境 演示将数字转换成英文拼写   软件环境 Windows Server 2008 R2 Oracle 11g Release 1 (11.1)   演示将数字转换成英文拼写 SQL> select decode(sign(&num), -1.........

[1]Oracle编程入门经典 第10章 PLSQL
    来源:    发布时间: 2013-10-29
【摘要】我们以介绍性的概念分析了在Oracle中进行PL/SQL编程。讨论了基于程序块的编程、以及PL/SQL怎样从逻辑上将代码块划分为职责区域,例如变量和常量声明、执行代码、以及错误控制代码。我们还讨论了PL/SQL中数据类型与SQL中数据类型之间的区别。游标可以让我们将SQL查询引入到PL/SQL代码中... http://www.cnblogs.com/yongfeng/archive/2013/05/08/3066282.html

本文链接


    
[2]ORACLE在线重定义--将普通表转化为分区表
    来源:    发布时间: 2013-10-29

10gR2
需要将一个普通表转为按月分区提高查询效率

测试如下:

一、建立测试表



SQL> CREATE TABLE T(ID NUMBER ,TIME DATE);

Table created.

SQL> DESC T;
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER
TIME DATE


SQL> INSERT INTO T SELECT ROWNUM,CREATED FROM ALL_OBJECTS;

17979 rows created.

SQL> SET TIMING ON
SQL> select count(*) from t;

COUNT(*)
----------
17979



二、测试表是否可以在线重定义




SQL> EXEC DBMS_REDEFINITION.CAN_REDEF_TABLE('test','T', DBMS_REDEFINITION.CONS_USE_PK);
BEGIN DBMS_REDEFINITION.CAN_REDEF_TABLE('test','T', DBMS_REDEFINITION.CONS_USE_PK); END;

*
ERROR at line 1:
ORA-06550: line 1, column 53:
PLS-00201: identifier 'DBMS_REDEFINITION' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored



出错原因是没有赋予‘DBMS_REDEFINITION' 的执行权限。解决的办法是:

dba用户授予权限



SQL> GRANT ALL ON SYS.DBMS_REDEFINITION TO TEST;

Grant succeeded.


SQL> GRANT CREATE ANY TABLE, ALTER ANY TABLE, DROP ANY TABLE, LOCK ANY TABLE, SELECT ANY TABLE TO TEST;

Grant succeeded.


回到test用户继续验证



SQL> EXEC DBMS_REDEFINITION.CAN_REDEF_TABLE('test', 'T', DBMS_REDEFINITION.CONS_USE_PK);
BEGIN DBMS_REDEFINITION.CAN_REDEF_TABLE('test', 'T', DBMS_REDEFINITION.CONS_USE_PK); END;

*
ERROR at line 1:
ORA-12089: cannot online redefine table "test"."T" with no primary key
ORA-06512: at "SYS.DBMS_REDEFINITION", line 137
ORA-06512: at "SYS.DBMS_REDEFINITION", line 1479
ORA-06512: at line 1


如果没有定义主键会提示以上错误信息

建立主键:



SQL> alter table t add constraint pk_t primary key(id);

Table altered.



再次验证成功



SQL> EXEC DBMS_REDEFINITION.CAN_REDEF_TABLE('test','T',DBMS_REDEFINITION.CONS_USE_PK);

PL/SQL procedure successfully completed.


三、建立中间表及分区



SQL> select to_char(min(time),'      
    
[3]演示将数字转换成英文拼写
    来源:    发布时间: 2013-10-29
本文内容
  • 软件环境
  • 演示将数字转换成英文拼写

 

软件环境
  • Windows Server 2008 R2
  • Oracle 11g Release 1 (11.1)

 

演示将数字转换成英文拼写
SQL> select decode(sign(&num), -1, 'Negative ', 0, 'Zero', NULL) ||



  2         decode(sign(abs(&num)), +1, to_char(to_date(abs(&num), 'J'), 'Jsp'))



 



  3    from dual;



输入 num 的值:  1



原值    1: select decode(sign(&num), -1, 'Negative ', 0, 'Zero', NULL) ||



新值    1: select decode(sign(1), -1, 'Negative ', 0, 'Zero', NULL) ||



输入 num 的值:  1



输入 num 的值:  1



原值    2:        decode(sign(abs(&num)), +1, to_char(to_date(abs(&num), 'J'), '



Jsp'))



新值    2:        decode(sign(abs(1)), +1, to_char(to_date(abs(1), 'J'), 'Jsp'))



 



 



DEC



---



One




    
最新技术文章:
 




特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3