当前位置: 数据库>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
【摘要】我们以介绍性的概念分析了在Oracle中进行PL/SQL编程。讨论了基于程序块的编程、以及PL/SQL怎样从逻辑上将代码块划分为职责区域,例如变量和常量声明、执行代码、以及错误控制代码。我们还讨论了PL/SQL中数据类型与SQL中数据类型之间的区别。游标可以让我们将SQL查询引入到PL/SQL代码中... http://www.cnblogs.com/yongfeng/archive/2013/05/08/3066282.html
本文链接
[2]ORACLE在线重定义--将普通表转化为分区表
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]演示将数字转换成英文拼写
本文内容
- 软件环境
- 演示将数字转换成英文拼写
软件环境
- 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网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!