返回用户定义的错误信息并设系统标志,记录发生错误。通过使用 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内容,不能写进表里面。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)