`
文章列表
原文链接:http://www.examda.com/oracle/zonghe/20100805/092741666.html [导读]Oracle是一种关系型数据库,在表中不可能以层次的关系存放数据,但是oracle提供了层次(树形)查询语句,使用树的遍历来获得层次关系的数据。  sql语法   select c ...
整体要求: 1、先查询出父资源库分类的所有资源库属性元数据 2、然后再查询出父资源库分类的所有子资源库分类 3、最后将子分类中没有而父分类中有的资源库属性元数据插入到子资源库分类中 declare --定义可以利用的资源 ...
可能不是很多人知道 RAISE_APPLICATION_ERROR 的用途是什么,虽然从字面上已经猜到这个函数是干什么用的。平时用来测试的异常处理 我们都是通过dbms_output.put_line来输出异常信息,但是在实际的应用中,需要把异常信息返回给调用的客户端。 其实 RAISE_APPLICATION_ERROR 是将应用程序专有的错误从服务器端转达到客户端应用程序(其他机器上的SQLPLUS或者其他前台开发语言) RAISE_APPLICATION_ERROR 的声明: PROCEDURE RAISE_APPLICATION_ERROR( error_number_in IN N ...
数据库字典视图user_objects用于显示当前用户包含的所有对象。它不仅可以用于列出用户的表、视图、索引等,也可以用于列出用户的存储过程、函数、包。 --1、查询数据库中的视图、存储过程、函数 select object_name,created,status from user_objects where object_type in ('PROCEDURE','FUNCTION','VIEW') --2、查看存储过程源代码 --当存储过程建立后,oracle将过程名、源代码机器执行代码存放到数据字典中。我们可以通过查询urser_source查看当前用户的所有存储过程 ...
--Oracle10g 开发函数 --1、建立不带参数的函数 create or replace function get_user return varchar2 is v_user varchar2(100); begin select username into v_user from user_users; return v_user; end; --在sql中利用函数进行查询 select get_user from dual; --2、建立带有输入参数的函数 create or replace function get_name(id in c ...
--在创建存储过程时,为参数传递变量和数据 create or replace procedure add_dept (dno number,dname varchar2 default null,loc varchar2 default null) is begin insert into dept values(dno,dname,loc); exception when dup_val_on_index then raise_application_error(-2000,'部门号不能重复'); end; --1、位置传递 --位置传递是指在调用存储过程时,按照参数 ...
--1、创建存储过程(无参数) create or replace procedure out_time is begin dbms_output.put_line(systimestamp); end; --调用存储过程 exec out_time; call out_time(); --结果 24-11月-10 08.59.35.500000000 上午 +08:00 --2、创建存储过程(有参数,且显示指定为输入参数,如果不指定参数模式,默认为输入参数) create or replace procedure update_comtype_name (p ...
首先自己动手写一个批处理命令,也就是一个bat文件,用来将项目产生的文件备份到一个文件夹中。 步骤一:先新建一个txt文件,然后向txt文件中写入下面的内容。 @echo off xcopy h:\txt\* h:\backup\temp_txt\ /s /e /h /d /c /y rmdir /s/q h:\backup\txt rename h:\backup\temp_txt txt 该段命令的作用就是将H盘的txt文件夹下的所有文件(包括子目录),备份到H盘的backup文件下。 步骤二:将其保存为bat格式文件 步骤三:点击 开始(即按下windows键)-> ...
--处理非预定义例外 --非预定义例外用于处理与预定义例外无关的oracle错误。 --使用预定义例外,只能处理21个oracle错误。而当开发的时候,可能会遇到其他的一些oracle错误 --比如:执行dml语句时,违反了约束规则 declare e_integrity exception; pragma exception_init(e_integrity,-12899); begin update communitytype t set t.withdrawn = '132' where t.community_type_id = 'ebook'; exception ...
Oracle提供了预定义例外、非预定义例外和自定义例外等三种例外类型,其中预定义例外用于常见的Oracle错误;非预定义例外则用于预定义例外所不能处理的错误;自定义例外用于处理与Oracle错误无关的其他情况 1、例外的格式 declare v_name communitytype.name%type; begin select name into v_name from communitytype where community_type_id = 'ebook'; dbms_output.put_line(v_name); --捕捉异常 exception when t ...
首先介绍Oracle 9i新增加的一个系统自带的排序函数 1、按首字母排序 在oracle9i中新增了按照拼音、部首、笔画排序功能。设置NLS_SORT值     SCHINESE_RADICAL_M   按照部首(第一顺序)、笔划(第二顺序)排序     SCHINESE_STROKE_M   按照笔划(第一顺序)、部首(第二顺序)排序     SCHINESE_PINYIN_M   按照拼音排序 oracle9i中新增了按照拼音、部首、笔画排序功能 用法示例: 拼音 SELECT * FROM TEAM ORDER BY NLSSORT(排序字段,'NLS_SORT = ...
在定义又表示必须要带有for update子句,用于在游标结果集数据上加行共享锁,以防止其他用户在相应行上执行dml操作;当select语句引用到多张表时,使用of子句可以确定哪些表要加锁,如果没有of子句,则会在select语句所引用的 ...
--使用游标 1)9i以前的使用方法,一次取一条数据 --1、显示游标 declare --定义游标 cursor temp_cursor is select t.name,t.english_name from communitytype t; --where t.community_type_id = 'ebook'; --定义变量 v_name communitytype.name%type; v_english_name communitytype.english_name%type; begin --打开游标 open temp_cursor; --循环取数据 ...
--Oracle 10g复合数据类型pl/sql集合,集合又可以分为索引表、嵌套表、变长数组 --1、索引表(下标没有长度限制,且可以为负值) --在9i前,定义索引表时,只能使用binary_integer和pls_integer作为下标的数据类型, --但是在9i后,下标数据类型还可以使用varchar2 declare type area_table_type is table of number index by varchar2(10); area_table area_table_type; begin area_table('北京'):=1; area_table( ...
--1、查询出被锁的情况: SELECT OBJECT_ID,SESSION_ID,SERIAL#, ORACLE_USERNAME,OS_USER_NAME,S.PROCESS FROM V$LOCKED_OBJECT A, V$SESSION S WHERE A.SESSION_ID=S.SID; --2、解锁: alter system kill session 'sid,serial#'; --解除所有被锁的记录 alter system kill session SELECT SESSION_ID||','||SERIAL# FROM V$LOCKED ...
Global site tag (gtag.js) - Google Analytics