{"id":158,"date":"2008-11-13T09:33:00","date_gmt":"2008-11-13T11:33:00","guid":{"rendered":"http:\/\/www.soudba.com.br\/?p=158"},"modified":"2008-11-13T09:33:00","modified_gmt":"2008-11-13T11:33:00","slug":"event-attribute-functions","status":"publish","type":"post","link":"https:\/\/www.soudba.com.br\/?p=158","title":{"rendered":"Event Attribute Functions"},"content":{"rendered":"<p>Quando uma trigger \u00e9 disparada, pode-se retornar certos atributos sobre o evendo que causou o disparo. Cada atributo \u00e9 retornado por uma fun\u00e7\u00e3o.<span style=\"font-family:Helvetica, Arial, sans-serif;color:rgb(51,0,153);\"><strong><\/strong><\/span><\/p>\n<p>As fun\u00e7\u00f5es, retiradas da documenta\u00e7\u00e3o da Oracle. Confirmado que funciona na vers\u00e3o 9.2 e n\u00e3o funciona em algumas releases do 10g por causa de bugs (<a href=\"http:\/\/metalink.oracle.com\/\">metalink.oracle.com<\/a> para maiores detalhes)<\/p>\n<table summary=\"\" dir=\"ltr\" title=\"\" rules=\"groups\" width=\"100%\" border=\"1\" cellpadding=\"3\" cellspacing=\"0\">\n<thead>\n<tr>\n<th scope=\"col\" valign=\"bottom\" align=\"left\"><span style=\"font-family:Arial, Helvetica, sans-serif;\"><strong>Attribute<\/strong><\/span><\/th>\n<th scope=\"col\" valign=\"bottom\" align=\"left\"><a name=\"1005075\"><\/a> <span style=\"font-family:Arial, Helvetica, sans-serif;\"><strong>Type<\/strong><\/span><\/th>\n<th scope=\"col\" valign=\"bottom\" align=\"left\"><a name=\"1005077\"><\/a> <span style=\"font-family:Arial, Helvetica, sans-serif;\"><strong>Description<\/strong><\/span><\/th>\n<th scope=\"col\" valign=\"bottom\" align=\"left\"><a name=\"1005079\"><\/a> <span style=\"font-family:Arial, Helvetica, sans-serif;\"><strong>Example<\/strong><\/span><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005081\"><\/a>ora_client_ip_address<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005083\"><\/a>VARCHAR2<br \/><\/pre>\n<\/td>\n<td><a name=\"1005085\"><\/a>   <\/p>\n<p>Returns the IP address of the client in a LOGON event, when the underlying protocol is TCP\/IP<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005087\"><\/a>if (ora_sysevent = 'LOGON')<br \/><a name=\"1005088\"><\/a>  then addr :=<br \/>ora_client_ip_address;<br \/><a name=\"1005089\"><\/a>end if;<br \/><\/pre>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005091\"><\/a>ora_database_name<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005093\"><\/a>VARCHAR2(50)<br \/><\/pre>\n<\/td>\n<td><a name=\"1005095\"><\/a>   <\/p>\n<p>Database name.<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005097\"><\/a>DECLARE<br \/><a name=\"1005098\"><\/a> db_name VARCHAR2(50);<br \/><a name=\"1005099\"><\/a>BEGIN<br \/><a name=\"1005100\"><\/a>   db_name := ora_database_name;<br \/><a name=\"1005101\"><\/a>END;<br \/><\/pre>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005103\"><\/a>ora_des_encrypted_password<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005105\"><\/a>VARCHAR2<br \/><\/pre>\n<\/td>\n<td><a name=\"1005107\"><\/a>   <\/p>\n<p>The DES encrypted password of the user being created or altered.<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005109\"><\/a>IF (ora_dict_obj_type = 'USER')<br \/><a name=\"1005110\"><\/a> THEN INSERT INTO event_table<br \/><a name=\"1005111\"><\/a>(ora_des_encrypted_password);<br \/><a name=\"1005112\"><\/a>END IF;<br \/><\/pre>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005114\"><\/a>ora_dict_obj_name<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005116\"><\/a>VARCHAR(30)<br \/><\/pre>\n<\/td>\n<td><a name=\"1005118\"><\/a>   <\/p>\n<p>Name of the dictionary object on which the DDL operation occurred.<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005120\"><\/a>INSERT INTO event_table<br \/>('Changed object is ' ||<br \/>ora_dict_obj_name');<br \/><\/pre>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005122\"><\/a>ora_dict_obj_name_list<br \/>(name_list OUT<br \/>ora_name_list_t)<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005124\"><\/a>BINARY_INTEGER<br \/><\/pre>\n<\/td>\n<td><a name=\"1005126\"><\/a>   <\/p>\n<p>Return the list of object names of objects being modified in the event.<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005128\"><\/a>if (ora_sysevent = 'ASSOCIATE<br \/>STATISTICS')<br \/><a name=\"1005129\"><\/a>  then number_modified :=<br \/>ora_dict_obj_name_list<br \/>(name_list);<br \/><a name=\"1005130\"><\/a>end if;<br \/><\/pre>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005134\"><\/a>ora_dict_obj_owner<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005136\"><\/a>VARCHAR(30)<br \/><\/pre>\n<\/td>\n<td><a name=\"1005138\"><\/a>   <\/p>\n<p>Owner of the dictionary object on which the DDL operation occurred.<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005140\"><\/a>INSERT INTO event_table ('object<br \/>owner is' ||<br \/>ora_dict_obj_owner');<br \/><\/pre>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005142\"><\/a>ora_dict_obj_owner_list(owne<br \/>r_list OUT ora_name_list_t)<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005144\"><\/a>BINARY_INTEGER<br \/><\/pre>\n<\/td>\n<td><a name=\"1005146\"><\/a>   <\/p>\n<p>Returns the list of object owners of objects being modified in the event.<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005148\"><\/a>if (ora_sysevent = 'ASSOCIATE<br \/>STATISTICS')<br \/><a name=\"1005149\"><\/a>  then<br \/>number_of_modified_objects :=<br \/>ora_dict_obj_owner_list(owner_li<br \/>st);<br \/><a name=\"1005150\"><\/a>end if;<br \/><\/pre>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005152\"><\/a>ora_dict_obj_type<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005154\"><\/a>VARCHAR(20)<br \/><\/pre>\n<\/td>\n<td><a name=\"1005156\"><\/a>   <\/p>\n<p>Type of the dictionary object on which the DDL operation occurred.<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005158\"><\/a>INSERT INTO event_table ('This<br \/>object is a ' ||<br \/>ora_dict_obj_type);<br \/><\/pre>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005160\"><\/a>ora_grantee(<br \/><a name=\"1005161\"><\/a>  user_list<br \/><a name=\"1005162\"><\/a>  OUT ora_name_list_t)<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005164\"><\/a>BINARY_INTEGER<br \/><\/pre>\n<\/td>\n<td><a name=\"1005166\"><\/a>   <\/p>\n<p>Returns the grantees of a grant event in the OUT parameter; returns the number of grantees in the return value.<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005168\"><\/a>if (ora_sysevent = 'GRANT') then<br \/><a name=\"1005169\"><\/a>number_of_users :=<br \/>ora_grantee(user_list);<br \/><a name=\"1005170\"><\/a>end if;<br \/><\/pre>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005172\"><\/a>ora_instance_num<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005174\"><\/a>NUMBER<br \/><\/pre>\n<\/td>\n<td><a name=\"1005176\"><\/a>   <\/p>\n<p>Instance number.<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005178\"><\/a>IF (ora_instance_num = 1)<br \/><a name=\"1005179\"><\/a> THEN INSERT INTO event_table<br \/>('1');<br \/><a name=\"1005180\"><\/a>END IF;<br \/><\/pre>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005182\"><\/a>ora_is_alter_column(<br \/>column_name IN VARCHAR2)<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005184\"><\/a>BOOLEAN<br \/><\/pre>\n<\/td>\n<td><a name=\"1005186\"><\/a>   <\/p>\n<p>Returns true if the specified column is altered.<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005188\"><\/a>if (ora_sysevent = 'ALTER' and<br \/><a name=\"1005189\"><\/a>ora_dict_obj_type = 'TABLE')<br \/><a name=\"1005190\"><\/a>  then alter_column :=<br \/>ora_is_alter_column('FOO');<br \/><a name=\"1005191\"><\/a>end if;<br \/><\/pre>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005193\"><\/a>ora_is_creating_nested_table<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005196\"><\/a>BOOLEAN<br \/><\/pre>\n<\/td>\n<td><a name=\"1005198\"><\/a>   <\/p>\n<p>Return TRUE if the current event is creating a nested table<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005200\"><\/a>if (ora_sysevent = 'CREATE' and<br \/>ora_dict_obj_type = 'TABLE' and<br \/>ora_is_creating_nested_table)<br \/><a name=\"1005201\"><\/a>  then insert into event_tab<br \/>values ('A nested table is<br \/>created');<br \/><a name=\"1005202\"><\/a>end if;<br \/><\/pre>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005204\"><\/a>ora_is_drop_column(<br \/>column_name IN VARCHAR2)<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005208\"><\/a>BOOLEAN<br \/><\/pre>\n<\/td>\n<td><a name=\"1005210\"><\/a>   <\/p>\n<p>Returns true if the specified column is dropped.<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005212\"><\/a>if (ora_sysevent = 'ALTER' and<br \/><a name=\"1005213\"><\/a>ora_dict_obj_type = 'TABLE')<br \/><a name=\"1005214\"><\/a>  then drop_column :=<br \/>ora_is_drop_column('FOO');<br \/><a name=\"1005215\"><\/a>end if;<br \/><\/pre>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005217\"><\/a>ora_is_servererror<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005219\"><\/a>BOOLEAN<br \/><\/pre>\n<\/td>\n<td><a name=\"1005221\"><\/a>   <\/p>\n<p>Returns <code>TRUE<\/code> if given error is on error stack, <code>FALSE<\/code> otherwise.<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005223\"><\/a>IF<br \/>(ora_is_servererror(<em>error_number<br \/><\/em>))<br \/><a name=\"1005224\"><\/a>\n THEN INSERT INTO event_table<br \/>('Server error!!');<br \/><a name=\"1005225\"><\/a>END IF;<br \/><\/pre>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005227\"><\/a>ora_login_user<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005229\"><\/a>VARCHAR2(30)<br \/><\/pre>\n<\/td>\n<td><a name=\"1005231\"><\/a>   <\/p>\n<p>Login user name.<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005233\"><\/a>SELECT ora_login_user<br \/><a name=\"1005234\"><\/a>FROM dual;<br \/><\/pre>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005388\"><\/a>ora_partition_pos<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005390\"><\/a>BINARY_INTEGER<br \/><\/pre>\n<\/td>\n<td><a name=\"1005392\"><\/a>   <\/p>\n<p>In an <code>INSTEAD OF<\/code> trigger for <code>CREATE TABLE<\/code>, the position within the SQL text where you could insert a <code>PARTITION<\/code> clause.<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005394\"><\/a>-- Retrieve ora_sql_txt into<br \/><a name=\"1005403\"><\/a>-- sql_text variable first.<br \/><a name=\"1005404\"><\/a><br \/><a name=\"1005405\"><\/a>n := ora_partition_pos;<br \/><a name=\"1005406\"><\/a>new_stmt :=<br \/><a name=\"1005409\"><\/a>substr(sql_text, 1, n-1) ||<br \/><a name=\"1005407\"><\/a>' ' || my_partition_clause ||<br \/><a name=\"1005408\"><\/a> ' ' || substr(sql_text, n));<br \/><\/pre>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005236\"><\/a>ora_privilege_list(<br \/><a name=\"1005237\"><\/a>privilege_list OUT<br \/>ora_name_list_t)<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005239\"><\/a>BINARY_INTEGER<br \/><\/pre>\n<\/td>\n<td><a name=\"1005241\"><\/a>   <\/p>\n<p>Returns the list of privileges being granted by the grantee or the list of privileges revoked from the revokee in the OUT parameter; returns the number of privileges in the return value.<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005243\"><\/a>if (ora_sysevent = 'GRANT' or<br \/>ora_sysevent = 'REVOKE')<br \/><a name=\"1005244\"><\/a>  then number_of_privileges :=<br \/>ora_privilege_list(priv_list);<br \/><a name=\"1005245\"><\/a>end if;<br \/><\/pre>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005247\"><\/a>ora_revokee (<br \/><a name=\"1005248\"><\/a>user_list OUT<br \/>ora_name_list_t)<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005250\"><\/a>BINARY_INTEGER<br \/><\/pre>\n<\/td>\n<td><a name=\"1005252\"><\/a>   <\/p>\n<p>Returns the revokees of a revoke event in the OUT parameter; returns the number of revokees in the return value..<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005254\"><\/a>if (ora_sysevent = 'REVOKE')<br \/>then<br \/><a name=\"1005255\"><\/a>number_of_users :=<br \/>ora_revokee(user_list);<br \/><\/pre>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005257\"><\/a>ora_server_error<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005259\"><\/a>NUMBER<br \/><\/pre>\n<\/td>\n<td><a name=\"1005261\"><\/a>   <\/p>\n<p>Given a position (1 for top of stack), it returns the error number at that position on error stack<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005263\"><\/a>INSERT INTO event_table ('top<br \/>stack error ' ||<br \/>ora_server_error(1));<br \/><\/pre>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005328\"><\/a>ora_server_error_depth<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005330\"><\/a>BINARY_INTEGER<br \/><\/pre>\n<\/td>\n<td><a name=\"1005332\"><\/a>   <\/p>\n<p>Returns the total number of error messages on the error stack.<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005334\"><\/a>n := ora_server_error_depth;<br \/><a name=\"1005341\"><\/a><code>-- This value is used with<br \/><\/code><a name=\"1005346\"><\/a><code>-- other functions such as<br \/><\/code><a name=\"1005347\"><\/a><code>-- ora_server_error<br \/><\/code> <\/pre>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005265\"><\/a>ora_server_error_msg<br \/>(position in binary_integer)<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005267\"><\/a>VARCHAR2<br \/><\/pre>\n<\/td>\n<td><a name=\"1005269\"><\/a>   <\/p>\n<p>Given a position (1 for top of stack), it returns the error message at that position on error stack<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005271\"><\/a>INSERT INTO event_table ('top<br \/>stack error message' ||<br \/>ora_server_error_msg(1));<br \/><a name=\"1005272\"><\/a><br \/><\/pre>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005349\"><\/a>ora_server_error_num_params<br \/>(position in binary_integer)<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005351\"><\/a>BINARY_INTEGER<br \/><\/pre>\n<\/td>\n<td><a name=\"1005353\"><\/a>   <\/p>\n<p>Given a position (1 for top of stack), it returns the number of strings that have been substituted into the error message using a format like <code>\"%s\"<\/code>.<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005355\"><\/a>n :=<br \/>ora_server_error_num_params(1);<br \/><\/pre>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005369\"><\/a>ora_server_error_param<br \/>(position in binary_integer,<br \/>param in binary_integer)<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005363\"><\/a>VARCHAR2<br \/><\/pre>\n<\/td>\n<td><a name=\"1005365\"><\/a>   <\/p>\n<p>Given a position (1 for top of stack) and a parameter number, returns the matching &#8220;%s&#8221;, &#8220;%d&#8221;, and so on substitution value in the error message.<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005367\"><\/a>-- E.g. the 2rd %s in a message<br \/><a name=\"1005382\"><\/a>-- like \"Expected %s, found %s\"<br \/><a name=\"1005381\"><\/a>param :=<br \/>ora_server_error_param(1,2);<br \/><\/pre>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005274\"><\/a>ora_sql_txt (sql_text out<br \/>ora_name_list_t)<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005276\"><\/a>BINARY_INTEGER<br \/><\/pre>\n<\/td>\n<td><a name=\"1005278\"><\/a>   <\/p>\n<p>Returns the SQL text of the triggering statement in the OUT parameter. If the statement is long, it is broken up into multiple PL\/SQL table elements. The function return value specifies how many elements are in the PL\/SQL table.<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005280\"><\/a>sql_text ora_name_list_t;<br \/><a name=\"1005326\"><\/a>stmt VARCHAR2(2000);<br \/><a name=\"1005281\"><\/a>...<br \/><a name=\"1005282\"><\/a>n := ora_sql_txt(sql_text);<br \/><a name=\"1005283\"><\/a>FOR i IN 1..n LOOP<br \/><a name=\"1005284\"><\/a> stmt := stmt || sql_text(i);<br \/><a name=\"1005285\"><\/a>END LOOP;<br \/><a name=\"1005286\"><\/a>INSERT INTO event_table ('text<br \/>of triggering statement: ' ||<br \/>stmt);<br \/><\/pre>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005288\"><\/a>ora_sysevent<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005290\"><\/a>VARCHAR2(20)<br \/><\/pre>\n<\/td>\n<td><a name=\"1005292\"><\/a>   <\/p>\n<p>System event firing the trigger: Event name is same as that in the syntax.<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005294\"><\/a>INSERT INTO event_table<br \/>(ora_sysevent);<br \/><\/pre>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005297\"><\/a>ora_with_grant_option<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005299\"><\/a>BOOLEAN<br \/><\/pre>\n<\/td>\n<td><a name=\"1005301\"><\/a>   <\/p>\n<p>Returns true if the privileges are granted with grant option.<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005303\"><\/a>if (ora_sysevent = 'GRANT' and<br \/>ora_with_grant_option = TRUE)<br \/><a name=\"1005304\"><\/a>  then insert into event_table<br \/>('with grant option');<br \/><a name=\"1005305\"><\/a>end if;<br \/><\/pre>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td>\n<pre><a name=\"1005307\"><\/a>space_error_info(<br \/><a name=\"1005308\"><\/a>error_number OUT NUMBER,<br \/><a name=\"1005309\"><\/a>error_type OUT VARCHAR2,<br \/><a name=\"1005310\"><\/a>object_owner OUT VARCHAR2,<br \/><a name=\"1005311\"><\/a>table_space_name OUT<br \/>VARCHAR2,<br \/><a name=\"1005312\"><\/a>object_name OUT VARCHAR2,<br \/><a name=\"1005313\"><\/a>sub_object_name OUT<br \/>VARCHAR2)<br \/><\/pre>\n<\/td>\n<td>\n<pre><a name=\"1005315\"><\/a>BOOLEAN<br \/><\/pre>\n<\/td>\n<td><a name=\"1005317\"><\/a>   <\/p>\n<p>Returns true if the error is related to an out-of-space condition, and fills in the OUT parameters with information about the object that caused the error.<\/p>\n<\/td>\n<td>\n<pre><a name=\"1005319\"><\/a>if (space_error_info(eno, typ,<br \/>owner, ts, obj, subobj) = TRUE)<br \/>then<br \/><a name=\"1005320\"><\/a>  dbms_output.put_line('The<br \/>object ' || obj || ' owned by '<br \/>|| owner || ' has run out of<br \/>space.');<br \/><a name=\"1005321\"><\/a>end if;<br \/><\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Quando uma trigger \u00e9 disparada, pode-se retornar certos atributos sobre o evendo que causou o disparo. Cada atributo \u00e9 retornado por uma fun\u00e7\u00e3o. As fun\u00e7\u00f5es, retiradas da documenta\u00e7\u00e3o da Oracle. Confirmado que funciona na vers\u00e3o 9.2 e n\u00e3o funciona em &hellip; <a href=\"https:\/\/www.soudba.com.br\/?p=158\">Continue lendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[99,207,320],"tags":[],"class_list":["post-158","post","type-post","status-publish","format-standard","hentry","category-event-attribute-functions","category-oracle-trigger-event","category-trigger-functions-event"],"_links":{"self":[{"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=\/wp\/v2\/posts\/158","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=158"}],"version-history":[{"count":0,"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=\/wp\/v2\/posts\/158\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=158"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=158"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=158"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}