数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

ORACLE 应用经验(1)


发布日期:2021年05月01日
 
ORACLE 应用经验(1)

作者: JAN(January) FEB(February) MAR(March)

APR(April) MAY(May) JUN(June)

JUL(July) AUG(August) SEP(September)

OCT(October) NOV(November) DEC(December)

********************************************************************

****************************常用设置********************************

onlog 触发器编写示范

Declare

flag varchar():=null;

cou number:=;

n number;

Begin

Loop

logon(USERNAMEPASSWORD||@||CONNECTPROPERTY_FALSE);

flag:=Get_Application_Property(DATASOURCE);

Exit when cou> or flag=ORACLE;

cou:=cou+;

End Loop;

If flag<>ORACLE then

set_alert_property(a_alert_message_text

登录失败请返回重试);

n:=show_alert(a_);

raise form_trigger_failure; 中断 FORM

End if;

End;

对基表执行查询(只对基表)

Set_Block_Property(Block_NameDefault_Wherewhere );

Go_Block(Block_Name);

Execute_Query;

***************************************************

变量

局部变量

全局变量:em

:parameterv_name

:globalV_name

***************************************************

同步发生显示

synchronize;

实施TRIGGER触发

EXECUTE_TRIGGER(TRIGGER_NAME);

清除模块

clear_block(NO_VALIDATE); NO_VALIDATE不生效

建立警告栏并由警告栏选择

Declare

n number;

Begin

Set_Alert_Property(Alert_NameAlert_Message_Textmessage);

n:=Show_Alert(Alert_Name);

If n=Alert_Button then

;

ElsIf n=Alert_Button then

;

End if;

End;

WINDOW设置

运行时最大化最小化

Set_Window_Property(FORMS_MDI_WINDOW WINDOW_STATE MAXIMIZE|MINIMIZE);

WINDOW标题

Set_Window_Property(FORMS_MDI_WINDOW titleTEXT);

退出是否为真

Set_Window_Property(FORMS_MDI_WINDOW REMOVE_ON_EXITPROPERTY_FALSE|TRUE);

设置系统提示信息等级

:SystemMessage_Level:= |||;

设置ITEM属性

设置ITEM属性ENABLED

Set_Item_Property(Block_nameItem_nameENABLEDPROPERTY_TRUE|FALSE);

设置ITEM属性NAVIGABLE

Set_Item_Property(Block_nameItem_nameNAVIGABLEPROPERTY_TRUE|FALSE);

设置ITEM属性VISUAL_ATTRIBUTE

Set_Item_Property(Block_nameItem_namevisual_attributevname);

vname由导航器中(VISUAL_ATTRIBUTES)定义

设置ITEM属性DISPLAYED

Set_Item_Property(Block_nameItem_namedisplayedTRUE|FALSE);

设置ITEM属性POSITION

Set_Item_Property(Block_nameItem_namepositionxy);

设置ITEM_SIZE

Set_Item_Property(Block_nameItem_nameitem_sizexy);

设置ITEM属性LABLE

Set_Item_Property(Block_nameItem_nameLABELMESSAGE)

设置LIST ITEM示范

Declare

n number;

Begin

clear_list(bfkfs);

m:=populate_group(fkfs);

populate_list(bfkfsfkfs);

/*

其中FKFS 为 record group ;

*/

End;

增加LIST ITEM

Add_List_Element(list_name list_index list_label list_value);

Add_List_Element(list_id list_index list_label list_value);

删除LIST ITEM

Delete_List_Element(list_name list_index);

Delete_List_Element(list_id list_index);

例:

BEGIN

Delete_List_Element(years);

Add_List_Element(years );

END;

获得LIST ITEM项的组成

获得LIST ITEM的总和

GET_LIST_ELEMENT_COUNT(list_id);

GET_LIST_ELEMENT_COUNT(list_name);

获得LIST ITEM的标签

GET_LIST_ELEMENT_LABEL(list_id list_name list_index);

GET_LIST_ELEMENT_LABEL(list_name list_index);

获得LIST ITEM的值

GET_LIST_ELEMENT_VALUE(list_id list_index);

GET_LIST_ELEMENT_VALUE(list_name list_index);

设置时间

DECLARE

timer_id Timer;

one_minute NUMBER() := ;

BEGIN

timer_id := CREATE_TIMER(emp_timer one_minute REPEAT|NO_REPEAT);

END;

产生一个EDITER

DECLARE

ed_id Editor;

status BOOLEAN;

BEGIN

ed_id:=Find_Editor(edit_name); edit_name导航器定义

IF NOT Id_Null(ed_id) THEN

Show_Editor(ed_id NULL :em_name status);

ELSE

Message(Editor Happy_Edit_Window not found);

RAISE Form_Trigger_Failure;

END IF;

END;

产生一个LOV

DECLARE

lv_id LOV;

status BOOLEAN;

BEGIN

lv_id := Find_LOV(lov_name); lov_name 由导航器定义

IF Id_Null(lv_id) THEN

lv_id := Find_LOV(lov_name); lov_name 由导航器定义

END IF;

status := Show_LOV(lv_id);

END;

定义一个EXCEPTION例外

Declare

err_ exception;

Begin

If then

Raise err;

End if;

Exception

When err_ then

END;

设置应用特性(光标类型)

SET_APPLICATION_PROPERTY(CURSOR_STYLE

CROSSHAIR|BUSY|HELP|DEFAULT|INSERTION);

***********************************************************************

**********************************函数*********************************

把字符串的字符变成全大写(UPPER)全小写(LOWER)第一个字母大写(INITCAP)

UPPER|LOWER|INITCAP(STRING)

在文件的左(LPAD)右(RPAD)粘贴字符

LPAD|RPAD(STRINGLENGTHSET) LENGTH为总字符长SET为粘贴字符

在文件的左(LTRIM)右(RTRIM)删除字符

LTRIM|RTRIM(SRTINGSET) SET为待删除字符

找出字符集在字符串中的位置

INSTR(STRINGSETNM) 从STRING中找出SETN位起第M

数的绝对值

ABS(VALUE)

MOD

MOD(VALUE除数) 返回除数VALUE的余数常用判断VALUE是否为整数

VALUEN位四捨五入ROUND 或从N位截断TRUNC

ROUND|TRUNC(VALUEN)

返回VALUE的符号

SIGN(VALUE)

列表的最大值

GREATEST(NN);

列表的最小值

LEAST(NN);

返回小于或等于数的最大整数

FLOOR(VALUE) floor()= floor()=

返回大于或等于数的最小整数

CEIL(VALUE) cell ()= cell ()=

取字符串长度

substr(stringstartnumber) number为string长度start为string起点

DECODE函数多重(ifthenelse)

decode(valueifthenifthenelse)

判断VALUE是否为空(空值替换)

NVL(UALUEWKFHZ) WKFHZ是为空返回值不为空则为原值

字段长度

length(:em_id)

返回字符串的第一(最左)个字符的ascII值

ascII(string)

多行VALUE的 (作用于多)

AVG(VALUE)平均值

COUNT(VALUE)行数

MAX(VALUE)最大值

MIN(VALUE)最小值

SUM(VALUE)和

字符转换

TRANSLATE(STRING待转字符转换字符);

如 TEANSLATE(AAABBBABBA) 返回BBBAAA

比较单行中多个列的值获得最大(GREATEST最小(LEAST)

GREATEST|LEAST(列名列名)

按表达式或位置排序

ORDER BY 表达式OR位置 ASC|DESC ASCDESC 默认ASC

***********************************************************************

***********************************************************************

游标的属性

() %ISOPEN 打开属性 布尔型 打开为TRUE

判断光标是否打开如未打开则打开光标

IF NOT(CORSOR_NAME%ISOPEN) THEN

OPEN CORSOR_NAME;

END IF;

FETCH

上一篇:Oracle8i中回滚段使用和ORA-1555

下一篇:Oracle9i不仅仅是数据库