动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.分解查询的优化方法全面分析.
.全面解析Oracle数据库中管理实例.
.SQL Server和Oracle并行处理比较.
.Oracle10g 数据的导入导出 给数据.
.Oralce开发心得整理.
.[收藏]ORACLE函数大全.
.ORACLE中LONG类型字段的存取.
.关于数据备份与恢复的定义和重要.
.Oracle数据库中行迁移/行链接的问.
.BLOB/CLOB/LONG/LongRaw数据类型.
.SQLServer和Oracle常用函数对比.
.chapter3:Oracle Enterprise Man.
.Oracle9i的简化SQL语法.
.oracle学习的好书.
.Oracle命中率查询,SGA调优.
.(原创)ORA-01092: ORACLE 例程.
.实例解析:DB2中实现Oracle的相关.
.Oracle 的一些基本知识,应该知道.
.Oracle LogMiner终结版.
.用PL/SQL和Java开发Oracle8 i应用.

Oracle数据库-PL/SQL整理(1)

发表日期:2008-2-9 |


--获取系统记录行数
  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(sqlerrmsqlcode,:global.logon_user);
--decode
decode(a.freightmode,'0','企业自付','1','供给商付费','2','企业代付','3','供给商代付',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 ='WebServer1';
--合同附件
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:='0';
--调用另一模块
DECLARE
   pl_id   ParamList;
   v_string varchar2(1000);
   v_itemname varchar2(1000);
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('SRMP035',:global.logon_user);
  --  采购计划关闭完毕!
--对话框
IF display_stop('INV081', :GLOBAL.logon_user) <> alert_button1 THEN
  RETURN;
END IF;
--取得货币名称
begin
  select currencydesc
  into v_currencydesc
  from t_currency
  where currencycode = c1.splymoneyflag;
  exception when others then v_currencydesc := '人民币(元)';
end;
--询问对话框-1
declare
  return_value number;
begin
  set_alert_property('stop_alert',alert_message_text,'确认送审该合同吗?');
  return_value := show_alert('stop_alert');
  if return_value != alert_button1 then
     return;
  end if;
end;
--询问对话框-2
DECLARE
 return_value number; 
BEGIN
  return_value := display_stop('mdm011',:global.logon_user);
  IF return_value = ALERT_BUTTON1 THEN
     COMMIT_FORM;
  END IF;
END;   --取下周一
 select trunc(sysdate,'d')+8 from dual;
--message_level
oldmsg := :System.Message_Level;
  IF reldef = 'FALSE' THEN
    Go_Block(detail);
    Check_Package_Failure;
    :System.Message_Level := '10';
    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;
--设置画布属性
vCan2:=FIND_VIEW('CAN_PRTNO2');
SET_VIEW_PROPERTY(vCan2,VISIBLE,property_true);
vCan1:=FIND_VIEW('CAN_PRTNO1');
SET_VIEW_PROPERTY(vCan1,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-LISTVAL
ELSIF :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_lov
DECLARE
  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 varchar2(6);
  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 c1 in cerpcode loop    
        update t_erpcode set sequence=sequence+1 where erpcode='PURAPPNO' and prifix=to_char(sysdate,'yy')to_char(sysdate,'mm');
     end loop;
    exception
     when others then
     display_note('SYS071',: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(*)+1 into maxno from t_purapp where appno like '%'to_char(sysdate,'yy')to_char(sysdate,'mm')'%';
           --select max()
      vlpadnum:=4;
      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_userto_char(sysdate,'yy')to_char(sysdate,'mm')lpad(maxno,vlpadnum,'0');
    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.prtno
connect 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_cur2 is select machtype A ,machtype B from t_gkdept order by machtype;
  N_INDEX NUMBER :=1;
begin
  DELETE_LIST_ELEMENT('T_TPMSCKMTN.MACHTYPE',1);
  for c2 in v_cur2 loop
    Add_List_Element('T_TPMSCKMTN.MACHTYPE',N_INDEX,C2.A,C2.B);
    N_INDEX := N_INDEX + 1;
  end loop;
end;
--
--查询重复数据
select rpno from t_purtrace group by rpno having count(rpno) >18;
--
--生成单据号
PROCEDURE GET_PRTNO is
   v_sysdate      varchar2(12);
   v_Svdictateno  varchar2(24);
   v_DbodNo       varchar2(12);     
   n_count        integer;
   v_count        varchar2(10);
   n_count1       integer;
   n_count2       integer;
   v_count2       varchar2(10);
   n_num          number;
   v_num          varchar2(8);
BEGIN   v_DbodNo:= 'ZS';
   v_sysdate:=to_char(sysdate,'YYMMDD');
   --获取满足条件的记录数
   select count(*)+1 into n_num
    from bas_prtbasdef
   where prtno like v_DbodNov_sysdate'%';
   v_num := to_char(n_num);
   --填充
   v_count:=lpad(v_num,'5','0');
   --合成为物料号
   v_Svdictateno:=v_DbodNov_sysdatev_count;
   --判定是否存在该号码
   select count(*) into n_count from bas_prtbasdef
   where prtno=v_Svdictateno;
   --不存在
   if n_count=0 then
      --把新物料号赋给参数p_prtno
      :parameter.p_prtno := v_Svdictateno;
   --若存在  
   elsif n_count>0 then
      --递增
      n_count1:=v_count+1;
      loop
         v_count2:=lpad(n_count1,'5','0');     
         v_Svdictateno:=v_DbodNov_sysdatev_count2;
        select count(*) into n_count2 from bas_prtbasdef
         where prtno=v_Svdictateno;
         if n_count2=0 then
            :parameter.p_prtno := v_Svdictateno;
            exit;--退出循环
         end if;
         n_count1:=n_count1+1;
      end loop;
   end if;
  exception when others then
   display_note(sqlerrmsqlcode,:global.logon_user);
  
END;
--
--当保存记录时控制:同一物料质量编号不能相同。

DECLARE
  row_count  NUMBER;                     --记录行数
  row_num    number;                        --所新建或修改记录行数
  V_PRTLOTNO t_srmchkproject.prtlotno%type; --质量编号
BEGIN     
 --获取当前记录行数
 row_num := :system.trigger_record;
  first_record; 
  loop
    row_count:=:system.trigger_record; 
    V_PRTLOTNO := :t_srmchkproject.prtlotno;
    GO_RECORD(ROW_COUNT + 1);
    loop
     --若质量编号相同
      if v_prtlotno = :t_srmchkproject.prtlotno then
       display_note('同种物料的质量编号不能相同!请改正。',:global.logon_user);
       go_item('t_srmchkproject.prtlotno');
       return;--返回
       --exit;
      end if;
    exit when :system.last_record = 'TRUE';
    next_record;
    end loop;
    GO_RECORD(ROW_COUNT+1);  --用以最后一行记录判定
  exit when :system.last_record = 'TRUE';
  --返回外层循环记录
  GO_RECORD(ROW_COUNT);
  next_record;
  end loop;
  commit_form;
  --返回当前记录 
  go_record(row_num);
EXCEPTION WHEN OTHERS THEN NULL; 
END;
--
--自动定位树结构的焦点
DECLARE
 htree      item;
  find_node      Ftree.NODE;
begin
   htree:= Find_Item('T_BOM1.BOM');
   find_node := FTREE.FIND_TREE_NODE(htree,:T_PRTBASDEF_CREATE.PRTNO,FTREE.FIND_NEXT,FTREE.NODE_VALUE,FTREE.ROOT_NODE,FTREE.ROOT_NODE);
   IF NOT Ftree.ID_NULL(find_node) then   --假如存在对应的节点
   --pause;
   FTREE.SET_TREE_SELECTION(htree, FIND_NODE, FTREE.SELECT_TOGGLE);
   end if;
end;
--
--杀死死进程
select SID, serial#, USERNAME, SCHEMANAME, STATUS, OSUSER, OSUSER,TERMINAL, PROGRAM, LOGON_TIME from v$session;
ALTER SYSTEM KILL SESSION '';
--
select func.DECODEPASSWD(passWord) from t_user where username = '';
select func.ENCODEPASSWD(password) from t_user where username = '';
--用户权限
(:GLOBAL.LOGON_USER in (select object from t_roleuser where role=MODIFER and flag='0') or MODIFER=:GLOBAL.LOGON_USER)
--
--列表项
DECLARE
  v_n Number;
BEGIN
  v_n := populate_group('rec_ptype');
  populate_list('t_freesb.prntno','rec_ptype');
END;
--提示对话框
set_alert_property('note_alert',alert_message_text,'口令更改成功!
');
return_value := show_alert('note_alert');
--
--改变按钮标签文本
DECLARE
 v_Count NUMBER;
 v_Label VARCHAR2(100);--记录“全选按钮”的标签文本
BEGIN
 Go_Block('user_col_comments');
 v_Label := Get_Item_Property('Blk_Control.BTn_Select_Col', Label);
 First_Record;
 IF v_Label = '+' THEN
  LOOP
   /*SELECT COUNT(*)
    INTO v_Count
    FROM t_Fieldrole
    WHERE Table_Name = :User_Col_Comments.Table_Name
      AND Column_Name = :User_Col_Comments.Column_Name
      AND Role = :t_Fieldrole.Role;*/
   --IF v_Count = 0 THEN
    :User_Col_Comments.Chk_Select := 1;
   --END IF;
   EXIT WHEN :System.Last_Record = 'TRUE';
   NEXT_RECORD;
  END LOOP;
  First_Record;
  Set_Item_Property('Blk_Control.Btn_Select_Col', Label,'-');
  Set_Item_Property('Blk_Control.Btn_Select_Col', TOOLTIP_TEXT,'取消选择');
 ELSIF v_Label = '-' THEN
  First_Record;
  LOOP
   :User_Col_Comments.Chk_Select := 0;
   EXIT WHEN :System.Last_Record = 'TRUE';
   NEXT_RECORD;  
  END LOOP;
  First_Record;
   Set_Item_Property('Blk_Control.Btn_Select_Col', Label,'+');
   Set_Item_Property('Blk_Control.Btn_Select_Col', TOOLTIP_TEXT,'选取全部');
 END IF;
EXCEPTION
 WHEN OTHERS THEN
  NULL;
END;
--
上一篇:Oracle数据库PL/SQL介绍 人气:549
下一篇:在T-SQL中实现Oracle的MINUS集合运算符 人气:565
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-10 企业网站智能管理系统(TZIMS) v6
2008-10-10 拓文asp.net网站内容管理系统 v6
2008-10-10 动网论坛PHP版 v2.0++ Build 081
2008-10-10 免费时代CMS v5.0
2008-10-10 wodig第四季中文DIGG社区 v4.1 b
2008-10-10 老Y文章管理系统 v2.2 bulid 081
2008-10-10 魔法盒动感相册 ASP+SQL版 v2.0
2008-10-10 Asoft签到管理系统 v3.0 Pack1
2008-10-10 哥特人音乐网潮流留言本 v1.1
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成