引言     公司内部的项目比较倾向于将业务逻辑放在oracle存储过程中实现,所以每次项目升级都涉及到很多的oracle表,存储过程等数据库对象的升级.然而采取的升级方式是比较"原始"的,每一个对象都是从开发库拷贝内容,再到测试库,正式库中黏贴,执行.这样的方式,工作量大而繁琐,容易出错出漏.为此,我编写了一个小程序,实现oracle对象的一键升级.下面给出主要实现逻辑. 1.获取对象的执行sql语句 利用oracle的dbms_metadata包来获取相关对象的执行语句,用orac…
数据库对象 用户模式:指数据库用户所创建和存储数据对象的统称.在访问其它用户模式的数据库对象时需加上用户模式. 如:scott.emp, scott.dept等. 数据库对象包括:表.视图.索引.序列.目录.同义词.数据库用户.存储过程.函数.触发器等. 同义词 同义词是现有数据库对象的一个别名. 简化SQL语句 隐藏对象的名称和所有者 同义词分为私有和公有的 --创建同义词得通过sys进行授权 grant create [any] synonym to $username$; --授权,创建私…
数据库对象 用户模式:指数据库用户所创建和存储数据对象的统称.在访问其它用户模式的数据库对象时需加上用户模式. 如:scott.emp, scott.dept等. 数据库对象包括:表.视图.索引.序列.目录.同义词.数据库用户.存储过程.函数.触发器等. 同义词 同义词是现有数据库对象的一个别名. 简化SQL语句 隐藏对象的名称和所有者 同义词分为私有和公有的 复制--创建同义词得通过sys进行授权 grant create [any] synonym to $username$; --授权,创…
Oracle 数据库对象又称模式对象,数据库对象是逻辑结构的集合,最基本的数据库对象是表. 其他数据库对象包括:  …
开发过程中,需要不停的备份数据库对象, 特别是存储过程, 每次手动备份不免很低能啊 历经几次修改终于, 完美了,O(∩_∩)O哈哈~      (当然,你也可以再改简便一点~~~) select dbms_metadata.get_ddl('PROCEDURE',"PROCEDURE_NAME",'NAG') 遇到大存储过程老是丢东西不说, 对象名 还老是 "用户名"."对象名" 的格式,腻烦人!~ CREATE OR REPLACE PROCE…
一.子查询 1.为什么要使用子查询:问题不能一步求解或者一个查询不能通过一步查询得到. 2.分类:单行子查询和多行子查询. 3.子查询的本质:一个查询中包含了另外一个或者多个查询. 4.使用子查询的规则: (1)可以在主查询的where.select.from.having的后面放置子查询,但是不可以在在group by后面防止子查询. (2)将子查询放到括号中去. (3)强调from后面放置子查询. (4)主查询和子查询使用的可以不是同一张表. (5)一般不在主查询中使用order by,但是…
数据库对象是数据库的组成部分,常常用CREATE命令进行创建,可以使用ALTER命令修改,用DROP执行删除操作.前面已经接触过的数据库对象有表.用户等. 今天将学习更多的Oracle数据库对象: 同义词:就是给数据库对象一个别名. 序列:Oracle中实现增长的对象. 视图:预定义的查询,作为表一样的查询使用,是一张虚拟表. 索引:对数据库表中的某些列进行排序,便于提高查询效率. ①同义词(通过同义词可以访问数据库对象) 同义词(Synonym)是数据库对象的一个别名,Oracle可以为表.视…
同义词是一种数据库对象,它是为一个数据库对象定义的别名,使用同义词的主要目的是为了简化SQL语句的书写. 同义词的概念和类型 利用同义词可以为用户的一个对象,或者其他用户的一个对象定义别名,从而简化命令或程序的书写,在命令或程序中可以直接使用同义词代替原来的对象. 可以为表.视图.存储程序.序列等对象建立同义词,也可以为一个同义词再建立同义词,甚至可以为一个不存在的对象建立同义词,系统仅仅在使用同义词时才验证它所代表的对象是否存在.同义词本身并不包含原对象中的数据或代码,它的作用仅仅相当于一个指…
count组函数:(过滤掉空的字段) select count(address),count(*) from b_user max() avg() min(),sum() select sum(age),max(age),min(age),avg(nvl(age,0)) from b_user 1       260     70      10      37.1428571428571 group by:如果前面定义了该字段名  则groupby必须也写上该字段 select name,pw…
在ORACLE中,我们可以通过file_id(file#)与block_id(block#)去定位一个数据库对象(object).例如,我们在10046生成的trace文件中file#=4 block#=266 blocks=8,那么我可以通过下面两个SQL去定位对象 SQL 1:此SQL效率较差,执行时间较长. SELECT OWNER,        SEGMENT_NAME,        SEGMENT_TYPE,        TABLESPACE_NAME FROM   DBA_EX…