1、

复制表结构和表中数据

create table emp_ly

as select *

from emp;

说明:注意复制表结构及数据不是sql

server里面的语法select * into emp_ly from

emp,这在oracle里面行不通,当然如果仅复制结构的话使用

只复制表结构

create table emp_ly as

select * from

emp where

1<>1;

2、

创建一个存储过程

create or replace procedure Sal_raise(emp_no

number,shuliang number)

as

begin

update emp_ly set sal=sal +

shuliang where empno=emp_no;

end;

/

说明:一定不能少begin

end;这两个关键字,不然创建存储过程会有提示

Warning: Procedure created with

compilation errors

意思是:警告,存储过程虽然创建了,但是有编译错误。

查看运行错误可以输入 SHOW ERRORS;

存储过程的声明参数类型时不能带长度,精度或者范围,比如这个存储过程emp_no

number这个参数,就不能声明为emp_no

number(4),同理,varchar2作为参数的类型是可以的,但是以varchar2(10)作为参数类型是不行的。

在sql

plus里面创建存储过程,最后一个反斜线不能少,这是告诉编译器运行这个PL/SQL块,但是在pl/sql developer的SQL

Window创建则不需要这个反斜线,选择输入的代码按F8键执行即可,缺点是编译出错不会提示。

3、

调用存储过程

A.在存储过程或者触发器中调用存储过程

使用存储过程名和参数即可,比如Sal_raise(7369,200);

B. 从交互式oracle工具中调用存储过程

在sql

plus中调用,可以使用匿名块的方式调用,如

begin

Sal_raise(7369,200);

end;

/

还可以使用EXECUTE或者CALL的语法调用,如

execute

Sal_raise(7369,200);

call

Sal_raise(7369,200);

值得注意的是,在sql

plus中执行完了,如果没有输入明确的commit;命令数据是不会实际写到表的,但是在SQL

Window窗口中只能通过

begin

Sal_raise(emp_no=>7369,shuliang=>200);

end;

方式调用存储过程,而且执行结果不需要输入commit;命令也会直接写入表。

4、

传入存储过程参数的三种方法:

Execute Sal_raise(7369,200);

Execute

Sal_raise(shuliang=>200,

emp_no=>7369);

execute

Sal_raise(7369,shuliang=>200);

第一种为常用方法,传入参数顺序和存储过程声明参数顺序一样

第二种为参数名称和参数值一一对应法,可以不按照存储过程声明参数顺序传入。

第三种为混合法,要求没有参数名称的值要写在前面,还需要按照声明参数的顺序才行,比如execute

sal_raise(200,emp_no=>7369);就是不行的。

5、

查看存储过程代码

如果查看存储过程的所有者,创建时间,是否有效等信息可以使用如下语句:

select * from all_objects where

object_name='SAL_RAISE';

如果要查看存储过程的代码,则可以使用如下代码:

select text from all_source where

name='SAL_RAISE' order by line;

请一定注意的是:上面着两个sql要有记录返回,一定要将存储过程的名字全部用大写,否则会没有记录返回。

6、

带输出参数的存储过程

稍微改造下成为带输出参数的存储过程:

create or replace procedure

Sal_raise(emp_no number,shuliang number,sal_now out

number)

as

begin

update emp_ly set sal=sal +

shuliang where empno=emp_no;

select sal into sal_now from

emp_ly where empno=emp_no;

end;

调用方法和不带输出参数的存储过程差不多,只不过需要声明一个合适类型的变量来接收输出参数而已。

set serveroutput on;

--主要用于后面的DBMS_OUTPUT要显示结果

declare sal_now number;

begin

Sal_raise(7369,200,sal_now);

DBMS_OUTPUT.PUT_LINE(TO_CHAR(sal_now));

end;

7、

删除存储过程

DROP PROCEDURE

Sal_raise

oracle 斜线出现次数,oracle一些操作小知识相关推荐

  1. 计算机卸载一个程序正确操作,小知识:为什么电脑卸载一个几G的软件要很久,手机却能瞬间完成...

    日常使用手机或电脑,安装卸载软件已成为家常便饭.但是,有木有细心的小伙伴注意过,手机端卸载一个几G的软件通常都是瞬间完成的,而电脑端却要很久的时间,很多时候还不能及时的卸载干净呢?理论上来讲,电脑端的 ...

  2. oracle 登录失败次数,Oracle用户连续登录失败次数限制如何取消

    当用户连续登录失败次数过多时,Oracle会锁定该用户,"FAILED_LOGIN_ATTEMPTS"用于设置最大次数,超过该值则锁定该帐号. 要取消用户连续登录失败次数的限制可以 ...

  3. Oracle Weblogic 11g(10.3.4)的小知识

    本周,我将为Weblogic进行许多设置和配置(我猜是开发人员). 在过去的4年中,我一直在与Weblogic合作,并且我不得不承认-与Eclipse类似-我已经开始使用它. 我曾经是Netbeans ...

  4. idea如何给oracle添加数据_intelij idea下使用java和JDBC连接oracle数据库及简单的SQL操作...

    intelij idea下使用java和JDBC连接oracle数据库及简单的SQL操作 发布时间:2018-07-04 10:09, 浏览次数:2532 , 标签: intelij idea jav ...

  5. Oracle XE版安装与用户操作

    文章目录 安装 安装Oracle数据库 Orace11g与Oracle 11g XE区别: 安装注意事项 Oracle 服务 Oracle中的服务 启动和停止服务 Oracle客户端 sqlplus客 ...

  6. Oracle教程(一)--基础操作

    一.Oracle简介 Oracle Database,又名Oracle RDBMS,简称Oracle.是甲骨文公司推出的一款关系数据库管理系统. Oracle数据库系统是目前世界上流行的关系数据库管理 ...

  7. oracle更改密码机制,Oracle密码机制以及常用操作

    Oracle 默认有3个用户: sys 密码:自定:system 密码:自定 :scott 密码:Tiger(默认锁定):注:用Sys用户登录须根 [as sysdba Oracle 默认有3个用户: ...

  8. RAC分解步骤之一,在oracle linux 4u4上安装oracle 10.2.0.1.0操作日志

    练习oracle的rac组建过程,第一步,先练习4u4上安装oracle 10.2.0.1.0.直接安装rac,有些难度.从简单的做起.总RAC步骤,参照小布老师的RAC组建. 1. 启动vc,登陆v ...

  9. oracle sql比较时间大小,Oracle数据库中日期时间的操作比较和加减

    Oracle数据库中日期时间的操作比较和加减 Oracle关于时间/日期的操作 1.日期时间间隔操作 当前时间减去7分钟的时间 select sysdate,sysdate - interval '7 ...

最新文章

  1. 张书源:大数据能力助力我实现化工智能制造 | 提升之路系列(十)
  2. php 配置 关闭警告,php warning 关闭的方法
  3. 查看历史操作记录(.bash_history)、修改文件时间
  4. 如何在C#中使用Win32和其他库之三
  5. JS学习笔记-1--基本知识和注意事项
  6. 读取bmp格式数据--实践思考
  7. Linux RAID磁盘阵列
  8. python写数据库校验_Python:生成验证码并插入到数据库!
  9. Silverlight实现强壮、可复用的拖放行为
  10. ubuntu14.04 配置jdk环境变量
  11. Myeclipse如何使用自带git工具向远程仓库提交代码(转)
  12. 树和森林(Tree and Forest)
  13. 好用的 windows10 软件推荐
  14. jemalloc 内存管理
  15. c++语言“case”,C++ switch case详解
  16. cs架构(cs架构和bs架构的区别)
  17. Maven项目 cityFileFK02数据库连接(课外完成)
  18. 西门子opc服务器注册,西门子OPC服务器怎么做
  19. 2021浏阳一中高考成绩查询,浏阳市2021年“三考”增加考生万余名
  20. 对于低收入的研究生来说,是否说明读研的意义并不大

热门文章

  1. Ubuntu下安装vscode c++环境
  2. java map赋值_java 中的map怎么没有办法赋值?
  3. 勤哲cad服务器支持ug,勤哲CAD服务器
  4. python删除链表中重复的节点_剑指offer:删除链表中重复的节点
  5. 带冲突检测的载波监听多路访问的原理_通信原理课程总结(二)
  6. pythonappium环境搭建_python appium环境搭建
  7. datetimepicker控件怎么改变hover颜色_VBA入门课程,ActiveX控件系列知识,复合框的属性与常见VBA代码...
  8. linux下统计所有py文件的代码多少行
  9. No such file or class on classpath: WordCount
  10. 如何删除链表的最后一个节点_面试:删除链表的节点