Oracle 语句收集

declare
--定义变量
v_ename varchar2(5);
 v_sal  number(7,2);
begin
--执行部分
select ename,sal into v_ename,v_sal from emp where empno=&aa;
 --在控制台显示用户名
dbms_output.put_line(‘用户名是:‘||v_ename||‘ 工资:‘||v_sal);
--异常处理
exception
when no_data_found then
    dbms_output.put_line(‘朋友,你的编号输入有误!‘);
end;   
  --输入雇员的姓名,返回该雇员的年薪
  create function annual_incomec(name varchar2)
  return number is
  annual_salazy number(7,2);
  begin
      --执行部分
      select sal*12+nvl(comm, 0) into annual_salazy from emp where ename=name;
      return annual_salazy;
  end;  
  create package sp_package is
    procedure update_sal(name varchar2, newsal number);
    function annual_income(name varchar2) return number;
  end; 
declare
    c_tax_rate number(3,2):=0.03;
    --用户名
    v_ename varchar2(5);
    v_sal number(7,2);
    v_tax_sal number(7,2);
  begin
  --执行
      select ename,sal into v_ename,v_sal from emp where empno=&no;
--计算所得税
    v_tax_sal := v_sal*c_tax_rate;
--输出
   dbms_output.put_line(‘姓名是:‘||v_ename||‘工资:‘||v_sal||‘ 交税:‘||v_tax_sal);
end;    
  declare
    --定义一个pl/sql记录类型emp_record_type,类型包含3个数据name,salary,title。说白了,就是一个类型可以存放3个数据,主要是为了好管理
    type emp_record_type is record(
      name   emp.ename%type,
      salary emp.sal%type,
      title  emp.job%type);
  --定义了一个sp_record变量,这个变量的类型是emp_record_type
    sp_record emp_record_type;
  begin
  select ename, sal, job into sp_record from emp where empno =7788;
  dbms_output.put_line (‘员工名:‘ || sp_record.name);
end;   
  declare
  --定义了一个pl/sql表类型sp_table_type,该类型是用于存放
emp.ename%type
  --index by binary_integer 表示下标是整数
    type sp_table_type is table of emp.ename%type
    index by binary_integer;
  --定义了一个sp_table变量,这个变量的类型是sp_table_type
    sp_table sp_table_type;
  begin
    select ename into sp_table(-1) from emp where empno = 7788;  

  dbms_output.put_line(‘员工名:‘ || sp_table(-1));
end; 
  declare
  --定义游标sp_emp_cursor
      type sp_emp_cursor is ref cursor;
  --定义一个游标变量
      test_cursor sp_emp_cursor;
  --定义变量
  v_ename emp.ename%type;
  v_sal emp.sal%type;
  begin
--执行
--把test_cursor和一个select结合
open test_cursor for select ename,sal from emp where deptno=&no;
--循环取出
loop
    fetch test_cursor into v_ename,v_sal;
    --判断是否test_cursor为空
    exit when test_cursor%notfound;
    dbms_output.put_line(‘名字:‘||v_ename||‘ 工资:‘||v_sal);
end loop;
end;
/ 
时间: 2024-10-29 19:11:21

Oracle 语句收集的相关文章

Oracle里收集与查看统计信息的方法

Oracle数据库里的统计信息是这样的一组数据:它存储在数据字典里,且从多个维度描述了Oracle数据库里对象的详细信息.CBO会利用这些统计信息来计算目标SQL各种可能的.不同的执行路径的成本,并从中选择一条成本值最小的执行路径来作为目标SQL的执行计划. Oracle数据库里的统计信息可以分为如下6种类型: 表的统计信息 索引的统计信息 列的统计信息 系统统计信息 数据字典统计信息 内部对象统计信息 表的统计信息用于描述Oracle数据库里表的详细信息,它包含了一些典型的维度,如记录数.表块

精妙T-SQL语句收集

SQL语句收集 1.查看SQL Server版本 SELECT SERVERPROPERTY('productversion') SELECT SERVERPROPERTY('productlevel') SELECT SERVERPROPERTY('edition') SELECT @@VERSION 2.查询Proc或是View内容 proc: select name,textfrom  sys.procedures a,sys.syscomments b where a.object_id

53个Oracle语句优化规则详解(转)

Oracle sql 性能优化调整  1. 选用适合的ORACLE优化器        ORACLE的优化器共有3种:a. RULE (基于规则)   b. COST (基于成本) c. CHOOSE (选择性)    设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你当然也在SQL句级或是会话(session)级对其进行覆盖.    为了使用基于成本的优化器(CBO,

Oracle语句

Oracle语句-基本查询 --清屏 SQL> host cls --当前用户 SQL> show user USER 为 "SCOTT" --当前用户的表 SQL> select * from tab; --员工表的结构 SQL> desc emp --查询所有的员工信息 SQL> select * from emp; --设置行宽 SQL> show linesize linesize 80 SQL> set linesize  150 -

Oracle语句分类汇总

1.Oracle语句之数据定义语言(DDL) 1) CREATE TABLE   新建表 2) ALTER TABLE    修改表 3) TRUNCATE TABLE  清空表数据  举例:truncate table stu; 4) DROP TABLE      删除表 alter用法: 1.在表中新增字段: alter table stu add age int; 2.在表中删除字段: alter table stu drop column age; 3.对字段改名: alter tab

用oracle语句计算百分比

来公司第一天,也没什么事干,经理说今天需要把报表做出来,需要写几个oracle语句,用来查询各类别下的人 员数量和占总人数比例.如下图 统计人数到不是问题,关键是比例不知道该怎么去做,上网查了好几个方式都尝试过了,但还是没能弄出来,一 下午的时间全花在解决这个问题上了,最后在要下班的时候,我突然看到了oracle中聚合函数sum() over的使用,最 终使得问题得到了解决. 实现代码: SELECT(CASE WHEN db_psndoc.age<=30 THEN '30岁以上' WHEN d

oracle语句随笔

oracle语句随笔 dmp数据的导入. CREATE USER memsspc IDENTIFIED BY 123; --创建用户 GRANT CONNECT,RESOURCE,DBA TO memsspc; --赋值权限 --cmd 中导入命令 IMP memsspc/123@ORCL FILE=D:\yuanzhangliu_work\suzhou\spc.dmp FULL=Y;

oracle 语句创建表空间、用户、授权

/*分为四步 */ /*第1步:创建临时表空间 */ create temporary tablespace yuhang_temp tempfile 'D:\oracledata\yuhang_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; /*第2步:创建数据表空间 */ create tablespace yuhang_data logging datafile 'D:\or

Sql 语句收集——行转列

SQL行转列汇总 PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P 完整语法: table_source PIVOT( 聚合函数(value_column) FOR pivot_column IN(<column_list>) ) UNPIVOT用于将列明转为列值(即列转行),在SQL Server 2000可以用UNION来实现 完整语法: