当前位置 : oracle

标签 oracle 下的文章

Oracle用户密码过期处理方式

请输入用户名: sys as sysdba
输入口令:

连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> ALTER USER UserName IDENTIFIED BY Password
2 ;

用户已更改。

SQL>

Oracle 10gR2 + RedHat Enterprise Linux AS4 安装

Oracle 10gR2 + RedHat Enterprise Linux AS4 安装
作者:tesroom
出处:www.oracle.com.cn
折腾了2天,终于把遇到的问题都解决了....以下是我的安装总结,自己写的,有点乱,凑合看把
(1)安装linux ,所由服务都不选择,只是选择安装开发工具,不要安装防火墙,不然有的端口没打开会提示连接超时.
(2)打开终端,执行如下命令,检查安装包,没有的都要安装(一般在dis2 和dis3上)

rpm -q make gcc glibc compat-db compat-gcc compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel openmotif21 setarch libaio

(3)创建 Oracle 组和用户帐户
例如:

# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -m -g oinstall -G dba oracle
# id oracle
uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)

设置 oracle 帐户的口令:

passwd oracle

- 阅读剩余部分 -

oracle数据分页查询及性能比较

1. 利用分析函数
row_number() over ( partition by col1 order by col2 )

SQL> select * from (
2 select tid ,row_number() over ( order by tid) rn from t)
3 where rn between 999999 and 999999;
TID RN
---------- ----------
999998 999999
已用时间: 00: 00: 02.06

2. 直接使用rownum 虚列

SQL> select * from (
2 select tid,rownum rn from t where rownum <= 999999
3 )
4 where rn >= 999999;
TID RN
---------- ----------
999998 999999
已用时间: 00: 00: 00.04

使用序列不能基于整个记录集合进行排序,如果指定了order by子句,排序的的是选出来的记录集的排序.
创建测试表测试表

SQL> create table t(tid number(6));
表已创建。
已用时间: 00: 00: 00.00

插入测试数据

SQL> declare i number(6);
2 begin
3 i := 0;
4 loop
5 insert into t values(i);
6 exit when i=999999;
7 i := i + 1;
8 end loop;
9 end;
10 /
PL/SQL 过程已成功完成。
已用时间: 00: 02: 30.08

SQL> select count(*) from t;
COUNT(*)
----------
1000000
已用时间: 00: 00: 00.05

经过测试明显第二种速度优于第一种

在ORACLE存储过程中返回表

首先建立一个包

CREATE OR REPLACE PACKAGE GLOBALPKG
AS
TYPE RCT1 IS REF CURSOR;
TRANCOUNT INTEGER := 0;
IDENTITY INTEGER;
END;

然后建立存储过程

CREATE OR REPLACE PROCEDURE GetColumnList
(
TableName IN VARCHAR2 DEFAULT NULL,
cur_OUT OUT GLOBALPKG.RCT1
)
AS
BEGIN
/*--------获取表信息---------*/
OPEN cur_OUT FOR
Select IIDD as 编号, SortID as 排序, ColumnName as 列名 , ColumnName_Dis as 显示列名,
IsDisplay_Grid as 浏览显示, IsEditVisible as 编辑显示,ColumnType as 字段类型,
ColumnLength as 长度 , DisplaySize as 控件大小 from LSA_Column where
TableEName=GetColumnList.TableName and IsDel <> '1' ORDER BY SortID ;
END;