Oracle存储过程中如何获得DELETE语句执行后删除的记录数

Oracle存储过程中如何获得DELETE语句执行后删除的记录数,第1张

sql%rowcount就行。

其中的sql是oracle的

内部

游标

,rowcount的意思是之前的dml

sql语句影响的多少行数据

如果是delete *** 作rowcount就是delete的数据,如果是insert,就是插入的

数量

你可以在

过程

中加入这句去测试下:

dbms_outputput_line(to_char(sql%rowcount));

获取系统记录行数  go_block( T_WARITEMPRT );  last_record;  row_count:=:system trigger_record;  system cursor_record execute_trigger( POST CHANGE ); 设置鼠标状态set_application_property(cursor_style BUSY ); raise form_trigger_failure; 显示错误信息  exception when others then    display_note(sqlerrm||sqlcode :global logon_user); decodedecode(a freigode 企业自付 供应商付费 企业代付 供应商代付 null)decode(qtyonhand qtyinit invtranqty invtranqty null) 导出路径select   from t_parameter where f_name= LeanERPTempDir ;select f_c_value from t_parameter where f_name = WebServer ; 合同附件select f_c_value  from t_parameter where f_name= purorderaccesspath ;select f_c_value  from t_parameter where f_name= purorderaccessurl ; 设置值列表     SET_ITEM_PROPERTY( top ORIGINALNO LOV_NAME LOV_MSO );LIST_VALUES; 下拉列表 n:=populate_group( rec_lb ); populate_list( BLK_BUT APPTYPE rec_lb ); :bLK_BUT APPTYPE:= ; 调用另一模块DECLARE    pl_id   ParamList;   v_string varchar ( );   v_itemname varchar ( ); BEGIN   pl_id := Get_Parameter_List( calendar );   IF NOT Id_Null(pl_id) THEN     Destroy_Parameter_List(pl_id);   END IF;   pl_id := Create_Parameter_List( calendar );   v_itemname:=:system current_block|| ||:system current_item;  v_string:=name_in(v_itemname);  Add_Parameter(pl_id p_str TEXT_PARAMETER v_string);   Call_Form( input_str no_hide no_replace no_query_only pl_id);  copy(:global str v_itemname); Erase(:global str);END; 批量处理  set_application_property(cursor_style BUSY );  SYNCHRONIZE;  first_record;  loop    null;  exit when :system last_record = TRUE ;  next_record;  end loop;  set_application_property(cursor_style DEFAULT );  bell;  display_note( SRMP :global logon_user);    采购计划关闭完毕! 对话框IF display_stop( INV :GLOBAL logon_user) <> alert_button THEN  RETURN;END IF; 取得货币名称begin  select currencydesc  into v_currencydesc  from t_currency  where currencycode = c splymoneyflag;  exception when others then v_currencydesc := 人民币(元) ;end; 询问对话框 declare  return_value number;begin  set_alert_property( stop_alert alert_message_text 确认送审该合同吗 );  return_value := show_alert( stop_alert );  if return_value != alert_button then     return;  end if;end; 询问对话框

DECLARE  return_value number;  BEGIN  return_value := display_stop( mdm :global logon_user);  IF return_value = ALERT_BUTTON THEN     MIT_FORM;   END IF; END;  

取下周一 select trunc(sysdate d )+ from dual; message_leveloldmsg := :System Message_Level;  IF reldef = FALSE THEN    Go_Block(detail);    Check_Package_Failure;    :System Message_Level := ;    Execute_Query;    :System Message_Level := oldmsg;  ELSE 取当前年度 期段号begin  select year period   into v_year v_period  from t_accperiod   where sysdate >= startdate  and to_char(sysdate yyyy/mm/dd )<=to_char(enddate yyyy/mm/dd ); exception when others then null;  end; 设置画布属性vCan :=FIND_VIEW( CAN_PRTNO );SET_VIEW_PROPERTY(vCan VISIBLE property_true);vCan :=FIND_VIEW( CAN_PRTNO );SET_VIEW_PROPERTY(vCan VISIBLE property_false); 设备提示信息elsif :top opsrc = X or :top opsrc= T then   set_item_property( top tranobj prompt_text 客户代码 );else   set_item_property( top tranobj prompt_text 部门代码 );end if; 设置值列表KEY LISTVALELSIF :top OPSRC= I THEN  零星出库  SET_ITEM_PROPERTY( top ORIGINALNO LOV_NAME LOV_MSI );LIST_VALUES;  IF :top ORIGINALNO IS NOT NULL THEN     PRTNO_MSI;  END IF;END IF; 调用值列表show_lovDECLARE   a_value_chosen BOOLEAN; BEGIN   a_value_chosen := Show_Lov( lov_name );   IF  a_value_chosen THEN     set_block_property( t_efficiency default_where username = :control display_name );    go_block( t_efficiency );    execute_query;      set_block_property( t_efficiency default_where username in (select username from t_hrmuser where department = :global user_dept) );  END IF; END; 生成序号declare  vlpadnum number;  maxno varchar ( );  cursor cerpcode is select sequence lpadnum from t_erpcode   where erpcode= PURAPPNO and prifix=to_char(sysdate yy )||to_char(sysdate mm ) for update nowait;begin  if :t_purapp appno is null then    if :SYSTEM MODE = NORMAL THEN     begin      begin     for c in cerpcode loop             update t_erpcode set sequence=sequence+ where erpcode= PURAPPNO and prifix=to_char(sysdate yy )||to_char(sysdate mm );     end loop;    exception     when others then     display_note( SYS :global logon_user);     raise form_trigger_failure;    end;      select sequence lpadnum into maxno vlpadnum from t_erpcode where erpcode= PURAPPNO and prifix=to_char(sysdate yy )||to_char(sysdate mm );     exception      when NO_DATA_FOUND then            select count()+ into maxno from t_purapp where appno like % ||to_char(sysdate yy )||to_char(sysdate mm )|| % ;           select max()       vlpadnum:= ;      insert into t_erpcode(erpcode prifix sequence lpadnum)       values ( PURAPPNO to_char(sysdate yy )||to_char(sysdate mm ) maxno vlpadnum);     end;      :t_purapp appno := Q ||:global logon_user||to_char(sysdate yy )||to_char(sysdate mm )||lpad(maxno vlpadnum );    end if;   end if;end; 遍历树 select t_prtstrudef prtno         t_prtbasdef prtdesc         t_prtbasdef mtltmrk         t_prtstrudef prtpqty         t_prtbasdef prtum         t_prtstrudef tranprtno   from t_prtstrudef t_prtbasdef   where t_prtstrudef prtno = t_prtbasdef prtnoconnect by prior t_prtstrudef prtno=t_prtstrudef prntno   start with t_prtstrudef prntno=:BLOCK_BUTTON PRTNO;   / 

Built in:  FORMS_DDL Example:   The expression can be a string literal /  BEGIN   Forms_DDL( create table temp(n NUMBER) );   IF NOT Form_Success THEN     Message ( Table Creation Failed );   ELSE     Message ( Table Created );   END IF; END; 物料所属大类判断and (exists (select a from t_prtinclass c where c classid= ||:blk_query classid|| and c prtno=v_totqry prtno ) or :blk_query classid is null) 给值列表赋初值declare  cursor v_cur is select machtype A machtype B from t_gkdept order by machtype;  N_INDEX NUMBER := ;begin  DELETE_LIST_ELEMENT( T_TPMSCKMTN MACHTYPE );  for c in v_cur loop    Add_List_Element( T_TPMSCKMTN MACHTYPE N_INDEX C A C B);    N_INDEX := N_INDEX + ;  end loop; end; 查询重复数据select rpno from t_purtrace group by rpno having count(rpno) > ; 生成单据号PROCEDURE GET_PRTNO is   v_sysdate      varchar ( );   v_Svdictateno  varchar ( );   v_DbodNo       varchar ( );         n_count        integer;   v_count        varchar ( );   n_count        integer;   n_count        integer;   v_count        varchar ( );   n_num          number;   v_num          varchar ( );BEGIN

lishixinzhi/Article/program/Oracle/201311/18393

select from (select a,arownum as roid from table a order by 2 desc/asc )bwhere broid between 10 and 20这是ORACLE的写法,在子查询里可以根据你所需要的字段进行排序,然后选取10-20的或者别的你所需要的数据,其中rownum为关键字,所以需要在子查询里定义别名,然后在外层才能引用这个排序键值

那只能是借助rownum来实现了 oracle中在加了rownum之后可进行排序。

使用rownum,一般是筛选部分行数为结果,所以若再排序,只是对部分结果进行排序,可能不是所需要的结果。

若在oracle先排序再rownum,则使用SQL嵌套可以实现,比如

select from (select from test order by a) where rownum<10;

虽然此sql可实现,排序后查询前10条的数据,根据实际需要修改即可。

某个用户的表的表名从数据字典表 user_tables 可以查到,虽然 user_tables 数据字典中也有表的行数 NUM_ROWS 字段,但除非你对该用户进行统计信息收集(运行 dbms_statgather_schema_stats()系统包)否则该字段要么没有值,要么值是过期的数据,不准确 正确的做法是:对数据库用户进行统计信息收集后,立刻执行:

select table_name,num_rows from user_tables;

以上就是关于Oracle存储过程中如何获得DELETE语句执行后删除的记录数全部的内容,包括:Oracle存储过程中如何获得DELETE语句执行后删除的记录数、Oracle数据库-PL/SQL整理(1)、oracle查询结果行数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9570708.html

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

发表评论

登录后才能评论

评论列表(0条)

保存