oracle函数

pl/sql oracle

不打扰是莪最后的温柔 提交于 2020-02-09 18:20:10
http://uule.iteye.com/blog/2061773(出处) 批量导入脚本 : 打开一个command window > 输入@ > 它会让你选择要导入的文件 (自己要知道导入文件的先后顺序,plsql不会自动识别这个的 或者像ls的 写个脚本) 如:@D:\SVN\1.5数据库脚本\oracle\import2.sql http://blog.csdn.net/hbhgjiangkun/article/details/8208565 1、PL/SQL Developer记住登陆密码 在使用PL/SQL Developer时,为了工作方便希望PL/SQL Developer记住登录Oracle的用户名和密码; 设置方法:PL/SQL Developer7.1.2 ->tools->Preferences->Oracle->Logon History,“Store history”是默认勾选的,勾上“Store with password”即可,重新登录在输入一次密码则记住了。 2、执行单条SQL语句 在使用PL/SQL Developer的SQL Window时,按F8键,PL/SQL Developer默认是执行该窗口的所有SQL语句,需要设置为鼠标所在的那条SQL语句,即执行当前SQL语句; 设置方法:PL/SQL Developer7.1.2-->tools-

Oracle中的NULL

泄露秘密 提交于 2020-02-09 17:31:13
在Oracle中使用NULL时,不少小伙伴遇到了很多坑,网上的关于NULL的说法也比较零散。在排序中,Oracle默认把NULL算作是无穷大,在order by语句作用后,NULL一直都是在最后的。有些人认为这是理所当然不对的,“空”在中国哲学概念中也是深奥莫测的,在所有运算和比较中,NULL就像一个数据黑洞,几乎把任何值都转化成NULL,这里不在哲学层面展开讨论。下面我们主要以Oracle官方文档(版本10gR2)作为依据,整理一下NULL的相关知识。 如果在一条记录的一列中没有值,就说这一列为空,或者包含空值。NULL可以出现在没有限制为非空或者主键完整性约束的任何数据类型的列中。一个值未知或者没有意义时,可用NULL来表示。 不可以用NULL代替数值0,他们不是等价的。 注:Oracle数据库现在把空字符串作为NULL处理。然而,在Oracle未来的版本中可能不支持这种做法,建议不要将空字符串作为NULL来处理。 任何包含NULL的算数表达式等价于NULL。例如:NULL + 10结果仍为NULL。事实上,所有的运算符(除了拼接符号concatenation),只要有一个操作数是NULL,都会返回NULL。 SQL函数中的NULL 当接收到的参数有NULL时,所有的标量函数都会返回NULL值(除了REPLACE,NVL,CONCAT)

Oracle介绍

拈花ヽ惹草 提交于 2020-02-09 09:44:22
Published: 2016-11-08 22:15:00 In Data Mining . tags: SQL 版本与配置 企业版 标准版 个人版 事务性数据表 分析型数据表 PL/SQL 配置 控制文件--数据文件--重做日志文件--临时文件 ******Oracleapporacleproduct11.2.0servernetworkADMIN目录下有三个文件 sqlnet.ora 用在oracle client端,用于配置连接服务端oracle的相关参数. tnsnames.ora 用在oracle client端,用户配置连接数据库的别名参数,就像系统中的hosts文件一样。 listener.ora 用在oracle server端,配置oracle服务端程序的监听办法,比如限制某些ip等参数 Orcale权限体系 系统管理员 sys 本地管理员 system 普通用户 进入系统 首先要从SYS或者SYSTEM账户开始。管理员账户登录认证有操作系统认证和口令文件认证。 连接工具: sqlplus命令行 1. 在Dos命令下输入 sqlplus 可以打开 Oracle 自带的 SQL Plus 并出现登录提示 2. 输入 sqlplus/nolog则打开 SQL Plus 后不出现登陆提示显示用户为 ""; 在系统的账号下创建用户--采用脚本的形式 SQL> @ ***

oracle程序包

倾然丶 夕夏残阳落幕 提交于 2020-02-08 06:03:35
程序包 概念: 程序包是一种数据库对象,它是对相关的pl/sql类型,子程序,游标,异常,变量和常量的封装。分为2部分。1是程序包规范2是程序包主题。 程序包规范: 声明包内数据类型,变量,常量,游标,子程序和异常等元素,这些元素为程序包的公有元素 语法 CREATE [OR REPLACE] PACKAGE package_name {IS | AS} [公有数据类型定义[公有数据类型定义]。。。。。] ---无需程序包主体实现 [共有游标的声明 [公有游标的声明]。。。。。。] - --需要程序包主体具体实现 [公有子程序的声明[公有子程序的声明]。。。。。] ---需要程序包主体具体实现 END [ package_name ]; (在程序包规范内声明的项可以在程序包之外使用,所以称为公用对象) ---------------------示例一创建程序包规范------------------------------ CREATE OR REPLACE PACKAGE pack_me IS PROCEDURE emp_proc(num NUMBER ); --声明存储过程 FUNCTION emp_fun(empno NUMBER) RETURN VARCHAR2; --声明函数 END pack_me; 程序包的主体: 包定义部分的具体实现

Oracle基础 程序包

别说谁变了你拦得住时间么 提交于 2020-02-08 05:00:26
一、程序包   程序包是一种数据库对象,它是对相关PLSQL类型、子程序、游标、异常、变量和常量的封装。程序包包含两部分内容:   1、程序包规范:可以声明类型、变量、常量、异常、游标和子程序。   2、程序包主题:可以实现在程序包规范中定义的游标、子程序。 二、程序包规范   程序包规范包含一些应用程序课件的公共对象和类型的声明它是应用程序的借口。规范包含应用程序所需的资源,如果程序包规范只声明类型、常量、变量和异常,则不需要有程序包主体。只有子程序和游标才具有程序包主体。   语法:   create [or replace] package package_name   is|as     [public type and item declations]     [subprogram specifications]   end [package_name]   说明:   package_name:包的名称。   public type and item declations:声明公共类型、常量、变量、异常和游标等。   subprogram specifications:声明PL/SQL子程序,也就是存储过程和函数。   在程序包规范中声明的项也可以再程序包之外使用。这样的项成为“公用对象”。      例: --程序包规范的声明 CREATE OR REPLACE

Oracle-程序包

自闭症网瘾萝莉.ら 提交于 2020-02-07 15:52:18
程序包由PL/SQL程序元素(变量,类型)和匿名PL/SQL(游标),命名PL/SQL 块(存储过程和函数)组成。 程序包可以被整体加载到内存中,这样可以大大加快程序包中任何一个组成部分的访问速度。 程序包由规范和包主题组成: 规范 : 用于规定程序包中可以使用哪些变量,类型,游标和子程序(该规范一定要在“包主体”之前被创建) 例子: 创建一个程序包“规范”,首先在该程序中声明一个可以获取指定部门的平均工资的函数,然后再声明一个可以实现按照指定比例上调指定职务的工资的存储过程 create or replace package pack_emp is function fun_avg_sal(num_deptno number) return number ; --获取指定部门的平均工资 procedure pro_regulate_sal(var_job varchar2,num_proportion number); --按照指定比例上调指定职务的工资 end pack_emp; / 主体 : 包含了在规范中声明的游标,过程和函数的实现代码,还有内部变量。 创建程序包pack_emp的主体,在该主体中实现对应“规范”中声明的函数和存储过程: create or replace package body pack_emp is function fun_avg_sal(num

oracle系统表查询

一世执手 提交于 2020-02-07 09:51:18
                    oracle系统表查询 oracle查询用户下的所有表 select * from all_tab_comments -- 查询所有用户的表,视图等 select * from user_tab_comments -- 查询本用户的表,视图等 select * from all_col_comments --查询所有用户的表的列名和注释. select * from user_col_comments -- 查询本用户的表的列名和注释 select * from all_tab_columns --查询所有用户的表的列名等信息(详细但是没有备注). select * from user_tab_columns --查询本用户的表的列名等信息(详细但是没有备注). --一般使用1: select t.table_name,t.comments from user_tab_comments t --一般使用2: select r1, r2, r3, r5 from (select a.table_name r1, a.column_name r2, a.comments r3 from user_col_comments a), (select t.table_name r4, t.comments r5 from user_tab

Oracle中select函数以及分组多表连接等重要点以及示例

被刻印的时光 ゝ 提交于 2020-02-06 04:10:07
Oracle中select函数以及分组多表连接等重要点 函数 –函数 –内置函数和自定义函数 –单行函数:一条记录返回一个结果的 –多行函数|组函数|聚合函数:多条记录返回一条结果的 单行函数 单行函数:一条记录返回一个结果的 示例: --单行函数 --当前时间 select distinct sysdate from emp; select sysdate from dual; select current_date from dual; --加减时间 --2天以后 select sysdate+2 from dual; --所有员工入职的3天前是几号 select hiredate,hiredate-3 from emp; --查询所有员工的使用期期到期(转正的日期)3个月试用期 select hiredate,add_months(hiredate,3) from emp;--add_month(日期对象,月份数) --查询所有员工到目前为止一共工作了几个月 select hiredate,months_between(sysdate,hiredate) from emp;--months_between(大的月份,小的月份) --查询当前月的最后一天 select last_day(current_date) from dual;--last_day(日期对象) -

Oracle XQuery查询、构建和转换XML 1

萝らか妹 提交于 2020-02-06 02:51:42
Oracle XQuery查询、构建和转换XML(1) 在 Oracle 数据库 10 g 第 2 版中, Oracle 引入了一个与该数据库集成的全功能自带 XQuery 引擎,该引擎可用于完成与开发支持 XML 的应用程序相关的各种任务。 XQuery 是一种用于处理 XML 数据模型的查询语言,它实际上可操作任何类型的可用 XML 表达的数据。尽管 Oracle XQuery 实施使您可以使用数据库数据和外部数据源,但在处理数据库中存储的结构化数据方面, Oracle XML DB 通常可以显著提高性能。 本文提供的示例不仅演示了在什么场合下以及如何使用 XQuery 查询、构建和转换 XML ,而且还演示了如何监控和分析 XQuery 表达式的性能执行,从而找到更高效的方法来处理同一工作负载。 基于关系数据构建 XML 在需要的情况下(例如,向 Web 服务发送结果),您可能要基于关系数据构建 XML 。要在 Oracle 数据库 10 g 第 2 版之前的版本中完成此任务,通常需要使用 SQL/XML 生成函数,如 XMLElement 、 XMLForest 和 XMLAgg() 。在 Oracle 数据库 10 g 第 2 版中, XQuery 将比这些函数更为高效。具体而言,在 XQuery 表达式内部使用 ora:view XQuery 函数

Oracle 10~ PL/SQL函数与存储过程

余生长醉 提交于 2020-02-05 13:16:14
1.PL/SQL函数:是通过关键字FUNCTION把复杂的逻辑封装进函数中,函数为使用者提供一个返回值。 PL/SQL函数主要由输入、逻辑计算和输出三部分组成,其语法结构为: create [or replace] function 函数名 ([p1,p2,...,pn]) return datatype is|as 声明部分 begin PL/SQL程序块 end 例如,编写一个函数计算学生某一门课程在班级内的排名。 create or replace function score_rank (pm_in_stuid in varchar2, pm_in_courseid in varchar2) return number is out_rank number := 0; ls_score number :=0; begin select t.score into ls_score from score t where t.stuid = pm_in_stuid and t.courseid = pm_in_courseid; select count(1) into out_rank from score t where t.courseid = pm_in_courseid and t.score > ls_score; out_rank := out_rank + 1;