电脑技术学习

Oracle概念:过程、函数、程序包

dn001

  IN参数:

  Create table t(n number);

  Create or replace

  procedure insert_into_t (p in number ) is

  begin

  insert into t values(p);

  end insert_into_t;

  /

  这个时候并没有执行该过程,尝试执行

  select * from t;

  exec insert_into_t (p=> 100);

  select * from t;

  例子2

  drop table t;

  Create table t

  (n number,

  p varchar2(20));

  Create or replace

  procedure insert_into_t (

  p1 in number,

  p2 in number) is

  begin

  insert into t values(p1,’p1’);

  insert into t values(p2,’p2’);

  end insert_into_t;

  /

  这个时候并没有执行该过程,尝试执行

  select * from t;

  exec insert_into_t (p1=> 100, p2=>200);

  select * from t;

  参数传递方法:

  1. 使用名称表示

  exec insert_into_t (p2=> 101, p1=>201);

  2. 使用位置表示

  exec insert_into_t (102, 202);

  3. 使用混合表示

  适用于有默认值的情况,注意:OUT 和 IN OUT 参数不能有默认值

  CREATE OR REPLACE procedure default_values(

  P1 varchar2,

  P2 varchar2 default ‘Chris’,

  P3 varchar2 default ‘Sean’) as

  Begin

  Dbms_output.put_line(p1);

  Dbms_output.put_line(p2);

  Dbms_output.put_line(p3);

  End default_values;

  /

  只想传入1,3参数:

  set serveroutput on

  exec default_values(‘Tom’, p3=>’Joel’);

标签: 函数