我在oracle pl sql中包含一些脚本,它包含一些sql命令(创建,插入...),并且当某些命令抛出一个错误时,例外。
在我的例外我想显示命令的实际文本,我想知道是否有一个局部变量存储最后一个命令的文本,或者如果是一种方式来存储该文本在我创建的变量。
sql * plus中的一种方法也可以提供帮助。
例如:包含sql命令/语句的实际文本的变量
BEGIN
INSERT INTO suppliers
(supplier_id, supplier_name)
VALUES
(5000, 'Apple');
EXCEPTION
WHEN OTHERS THEN
print the variable that contains tha actual text of the sql command
END;
你为什么抓住它,你为什么使用PL/SQL块如果你只是跑了一个脚本中的语句作为普通的SQL,至少通过? SQL \ * Plus或SQL Developer,它会一起向您显示语句和错误。 –
@ omatan234,我认为,您唯一的选择是创建一个新变量并存储确切的sql。 –
@AlexPoole在SQL * Plus中运行一个脚本,没有任何例外,捕捉不会给我这个声明。我需要所有在另一个文件中抛出错误的语句。有一种方法可以捕捉异常并使用存储该语句文本的变量? – omatan234