易截截图软件、单文件、免安装、纯绿色、仅160KB

PostgreSQL和Oracle用法上的一些区别

(1 ) 注意增加约束时的写法,和ORACLE 略有不同
Oracle :
ALTER TABLE SCHEMA.PREFIX_INFO ADD (
CONSTRAINT PK_PREFIX_INFO PRIMARY KEY (INFO_ID));
PostgresQL :
alter table schema.prefix_info add constraint prefix_info_pkey primary key(info_id);
(2 )系统默认的最大值与ORACLE 不同
Oracle :
CREATE SEQUENCE PREFIX_INFO_SEQUENCE
INCREMENT BY 1
START WITH 582
MINVALUE 1
MAXVALUE 9999999999999999999999999999
NOCYCLE
CACHE 20
NOORDER;
PostgresQL :
CREATE SEQUENCE schema.prefix_info_sequence
increment 1
minvalue 1
maxvalue 9223372036854775807
start 582
cache 20;
(3 )PostgresQL 中的 || 用 法与其他数据库不同:
select a|| b from table1;
当a 或b 其中一个为null 时, 该查询返回null ,
(4 )PostgresQL 中没有concat 函数,且由于|| 用法的问题,无法使用|| 替换,解决 方法为在public schema 中创建函数concat
create or replace function concat(text, text)
returns text as
$body$select coalesce($1,'') || coalesce($2,'')$body$
language 'sql' volatile;
alter function concat(text, text) owner to postgres;
-- 无需特殊授权即可在其他schema 中使用
(4 )PostgresQL 中没有dual 虚拟表,为保 证程序兼容性,可创建伪视图(view )替代:
CREATE OR REPLACE VIEW dual AS
SELECT NULL::"unknown"
WHERE 1 = 1;
ALTER TABLE dual OWNER TO postgres;
GRANT ALL ON TABLE dual TO postgres;
GRANT SELECT ON TABLE dual TO public;
必须授权public 以select 权 限
(5 )关联查询用法区别
ORACLE:
简单外连接:
SELECT COUNT(DISTINCT(A.COL1)) AS RCOUNT from
SCHEMA.PREFIX_TABLE1 A,SCHEMA.PREFIX_TABLE2 B
WHERE 1 = 1
AND A.COL2 = B.COL2(+)
AND A.COL3 > 0
AND A.COL4 = '1'
超级变态外连接:
SELECT COUNT(DISTINCT(A.COL1)) AS RCOUNT from
SCHEMA.PREFIX_TABLE1 A,SCHEMA.PREFIX_TABLE2 B,SCHEMA.PREFIX_TABLE3 C,SCHEMA.PREFIX_TABLE4 D
WHERE 1 = 1
AND A.COL2 = B.COL2
AND A.COL3 = C.COL3(+)
AND A.COL4 = D.COL4(+)
AND A.COL5 > 0
AND A.COL6 = '1'
POSTGRESQL:
简单外连接:
select count(distinct(a.col1)) as rcount from
schema.prefix_table1 a left ou


相关文档:

Oracle数据导入导出imp/exp命令使用

Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。
 
执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,
......

oracle序列生成器(sequence)使用的一点小注意

有人遇到这么一个问题,访问一个序列怎么出错了,错误如下: ORA-08002: 序列 SEQ_GX.CURRVAL 尚未在此会话中定义 这是因为在一个新的会话中,序列需要初始化,也就是通过.NEXTVAL来完成序列的初始化。 测试如下: Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 Connected as crmii SQL> SQ ......

oracle 10g 创建 DATA GUARD

其实创建dg网络上的文档很多,我是看小布老师是视频学习的
用虚拟机做测试,弄了好几天,下面记录一下曾经做过印象比较深的地方
 
1.将Primary服务器处于归档模式和Force Logging模式
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
S ......

使用oracle的一些技巧方法

将查询的结果生成到文件中:
set echo on --是否显示执行的命令内容
set feedback off --是否显示 * rows selected
set heading off --是否显示字段的名称
set verify off --是否显示替代变量被替代前后的语句。fil
set trimspool off --去字段空格
set pagesize 1000 ......

oracle练习题(mldn视频)一

1,列出最低薪金大于1500的各种工作及从事此工作的全部雇员人数。
select job,count(empno) from emp
where job in(select job from emp group by job having min(sal)>1500)
group by job;
2,列出薪金高于公司平均薪金的所有员工所在部门,上级领导,公司的工资等级。
select e.ename,d.dname,m.ename,e.sal,sa. ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号