sql中如何使用exception

sql中如何使用exception,第1张

RAISERROR

返回用户定义错误信息并设系统标志,记录发生错误。通过使用 RAISERROR 语句,客户端可以从 sysmessages 表中检索条目,或者使用用户指定的严重度和状态信息动态地生成一条消息。这条消息在定义后就作为服务器错误信息返回给客户端。

语法

RAISERROR ( { msg_id | msg_str } { , severity , state }

[ , argument [ ,...n ] ] )

[ WITH option [ ,...n ] ]

参数

msg_id

存储于 sysmessages 表中的用户定义的错误信息。用户定义错误信息的错误号应大于 50,000。由特殊消息产生的错误是第 50,000 号。

msg_str

是一条特殊消息,其格式与 C 语言中使用的 PRINTF 格式样式相似。此错误信息最多可包含 400 个字符。如果该信息包含的字符超过 400 个,则只能显示前 397 个并将添加一个省略号以表示该信息已被截断。所有特定消息的标准消息 ID 是 14,000。

msg_str 支持下面的格式:

% [[flag] [width] [precision] [{h | l}]] type

可在 msg_str 中使用的参数包括:

flag

用于确定用户定义的错误信息的间距和对齐的代码。

可以查阅一下SQL SERVER的联机丛书(在安装了MSSQL的开始菜单里可以查到)

通过如下代码:

public static String getExceptionAllinformation(Exception ex){

String sOut = ""

StackTraceElement[] trace = ex.getStackTrace()

for (StackTraceElement s : trace) {

sOut += "\tat " + s + "\r\n"

}

return sOut

}

扩展资料:

注意事项

oracle存储过程,可以通过sqlcode 获取异常编码、通过sqlerrm获取异常信息。

例子:

create or replace procedure write2blob(p_id        in number, --id

p_blob_data in blob,

p_msg       out varchar2) --数据

is

v_lobloc     blob--目标blob

v_blob_data blob--作为接受参数的字段,参数变量不能直接拿来赋值

v_amount     binary_integer--总长度

v_sub_length binary_integer--一次读取的最大长度,不超过32766

v_sub_blob   blob--一次读取的子串

v_offset     binary_integer--游标

v_err_msg    varchar2(1000)

v_id         binary_integer--要修改或新增的记录ID

v_temp       binary_integer--临时变量用于判断是否有v_id对应的记录begin

v_amount     := length(p_blob_data)

v_blob_data  := p_blob_data

v_sub_length := 32767

v_offset     := 1

v_id         := p_id

v_temp       := 0 --execute immediate v_query_string into v_lobloc

select count(1) into v_temp from a where id = v_id --查询是否有v_id对应的记录,并且赋值给v_te/*注意:无论是修改还是新增,blob字段都需要用empty_blob()进行初始化,否则后边的blob内容,不能写进表里面。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9480387.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存