存储过程_通过实例学习

1、DML(数据操纵语言) 有:select/update/delete/insert。如何用存储过程实现这些功能呢。

 

 

 

2、DDL(数据定义语言) 有:create/alter/drop/modify。以下通过实例学习这些语言。

 

 

 

3、DCL(数据控制语言) 有:grant/deny/revoke。

 

 

在存储过程中,如果想要实现表的创建、更新、插入等操作,可以使用动态SQL语句。在存储过程中不能使用静态SQL实现表的创建等。还有select xx into v_xx这样就不行了,返回不了值。要使用

str_access_number number;
str_sql := ’select count(*)  from table_name a where a.id=:id’;
execute immediate str_sql into str_access_number; 

 其中:str_sql是一slectt语句,是varchar字符变量。str_access_number是对应要插入的字段名。

 

在存储过程中创建表的实现:

创建存储过程

   

create or replace procedure create_table
 as
     p_s varchar2(2000);
 begin
     p_s:='CREATE TABLE supplier (
         supplier_id     numeric(10)     not null,
         supplier_name   varchar2(50)    not null,
         contact_name    varchar2(50),
         CONSTRAINT supplier_pk PRIMARY KEY (supplier_id)
      )' ;--创建表的sql语句
    execute immediate p_s;--运行p_s中的语句,创建supplier 表
    exception     
          when others then
               null;  
 end;
execute create_table;--执行存储过程,表创建成功

 

DECLARE
    X NUMBER := 100;
BEGIN
    FOR i IN 1..10 LOOP
        IF MOD(i, 2) = 0 THEN
          INSERT INTO supplier VALUES(i, x,': is even');
        ELSE
          INSERT INTO supplier VALUES(i, x,': is odd');
        END IF;
        x := x + 100;
    END LOOP;
 END;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值