LAST_ERROR_POSITIONは、DBMS_SQL.PARSEを最後に呼び出した際に発生した構文エラーの位置を取得するために使用されます。
DBMS_SQL.PARSE内のSQLステートメントでエラーが発生した場合、直ちにDBMS_SQL.LAST_ERROR_POSITIONを呼び出すことで、エラー発生位置を取得できます。
適用対象
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
構文
DBMS_SQL.LAST_ERROR_POSITION
RETURN INTEGER;
戻り値
エラー発生位置を示す、SQLステートメントテキスト内のバイトオフセットを表すINTEGER値を返します。
例
以下の例では、5行目のSQLステートメントselect * form dualでfromが誤ってformと綴られているため、例外が発生します。この場合、直ちにDBMS_SQL.LAST_ERROR_POSITION()を呼び出すと、エラー発生位置が返されます。
obclient > DECLARE
CUR NUMBER;
BEGIN
CUR:=dbms_sql.open_cursor;
dbms_sql.parse(CUR,'select * form dual',dbms_sql.native);
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('error pos: ' || dbms_sql.last_error_position());
END;
/
Query OK, 1 row affected
error pos: 9