oracle数据存在t,Oracle操作前验证是否已经存在

本文介绍了如何在Oracle中使用SQL判断存储过程是否存在,通过实例演示了检查表存在的方法,并讲解了如何在INSERT语句中进行条件插入。此外,详细展示了如何处理存储过程执行时的异常,包括错误消息获取和输出。
摘要由CSDN通过智能技术生成

1.oracle 判断某一个存储过程是否存在

SELECTdistinctname

FROMUSER_SOURCE

WHERETYPE ='PROCEDURE'

andname='procedurename';

2.oracle 判断一个表是否已存在

用如下sql语句即可判断:

selectt.*fromuser_tables twhereupper(t.TABLE_NAME)=upper('tablename');

oracle可以内置在insert语句中进行判断,如下sql:

insert

when(notexists (select1fromt_test_lllwhereid ='111'))then

intot_test_lll(id)select'111'fromdual;

这样,当数据库里有一个id='111'的记录的时候,就不会进行insert操作了。

1.set feedback on

默认的当一条sql发出的时候,oracle会给一个反馈。

比如说执行下面这个创建表语句:

createtablet_test_lll(id varchar2(10));

命令行会返回:Table created。

set feedback off--将feedback设为off,以关闭反馈信息

set feedback n---当一条sql语句返回n或者大于n行记录的时候,就会有feedback。

5.存储过程执行获取异常

whenothersthen

v_ErrMsg := SUBSTRB(SQLERRM, 1, 200);

dbms_output.put_line('找不到相应学生,错误原因:'||v_ErrMsg);

6.Oracle 动态SQL

执行动态sql的语法为:

Excute immediate 动态SQL语句 using 绑定参数列表 returning into 输出参数列表

测试表:表:student(id,name,age);

例子:存储过程 create or replace procedure p_stu_info(s_id number) is

v_name varchar2(10);

v_age number;

begin

execute immediate 'select name,age from studentwhere id=:1'

using s_id

returning into v_name, v_age;

dbms_output.put_line(v_name || '的年龄为:' || to_char(v_age));

exception

when others then

dbms_output.put_line('找不到相应学生');

end p_stu_info;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值