oracle是块结构语言,oracle程序划分成几个部分,并在每个部分中写入逻辑代码块,每个块由三个子部分组成。
声明部分:此部分是以关键字DECLARE开头。这是一个可选部分,并定义了程序中要使用的所有变量,游标,子程序和其他元素。
可执行命令部分:此部分包含在关键字BEGIN和END之间,这是一个强制性部分。由程序的可执行oracle语句组成。应该有至少一个可执行代码行,可以只是一个NULL命令,表示不执行任何 *** 作。
异常处理部分 :此部分以关键字EXCEPTION开头。这是一个可选部分,包含处理程序中错误的异常。
每个oracle语句以分号(;)结尾。使用BEGIN和END可以将oracle块嵌套在其他oracle块中。以下是Poracle块的基本结构。
Hello World示例:
END;行表示oracle块的结尾。要从oracle命令行运行代码,需要在代码的最后一行之后键入/字符。当上述代码在oracle提示符下执行时,它会产生以下结果:
oracle标识符:oracle标识符是常量,变量,异常,过程,游标和保留字。标识符包括一个字母,可选地后跟多个字母,数字,美元符号,下划线和数字符号,不得超过30个字符。
默认情况下,标识符不区分大小写。例如,可以使用integer或INTEGER来表示一个数值。 不能使用保留关键字作为标识符。
扩展资料
oracle注释程序:注释可以在编写的oracle代码中包含的说明性文字,并帮助其他人阅读源代码。所有编程语言都允许某种形式的注释。
oracle支持单行和多行注释。注释中的所有字符都被oracle编译器忽略。oracle单行注释以分隔符开头 --(双连字符),多行注释由/和/括起来。
当上述代码在oracle提示符下执行时,会产生以下结果:
oracle变量的名称由可选的字母,数字,美元($)符号,下划线和数字符号组成,不能超过30个字符。 默认情况下,变量名不区分大小写。不能将保留的oracle关键字用作变量名称。
oracle编程语言允许定义各种类型的变量,如:日期时间数据类型,记录,集合等,我们将在后面的章节中介绍。 在本章中仅学习基本的变量类型。
什么是PL/SQL 结构化查询语言(Structured Query Language 简称SQL)是用来访问关系型数据库一种通用语言 它属于第四代语言( GL) 其执行特点是非过程化 即不用指明执行的具体方法和途径 而是简单的调用相应语句来直接取得结果即可 例 delete from students where major= Nutrition ; 然而 对于有些复杂的业务流程又要求相应的程序来描述 那么 GL就有些无能为力了 PL/SQL通过增加了用在其它过程性语言中的结构来对SQL进行了扩展 使得它不仅仅是一个数据库查询语言 而且也是一个编程语言
PL/SQL代表面向过程化的语言与SQL语言的结合 在编写PL/SQL代码时可以在SQL语句中使用 ( )变量和类型( )控制语句( )过程和函数( )对象类型和方法PL/SQL语言实现了将过程结构与Oracle SQL的无缝集成例 修改一个学生的专业 如果没有该学生 就插入一个新的记录 gl_ gl sqlDECLARE v_newmajor VARCHAR ( ):= History ; v_firstname VARCHAR ( ):= Scott ; v_lastname VARCHAR ( ):= Urman ;
BEGIN update students set major=v_newmajor where first_name=v_last_name and last_name=v_last_name;
lishixinzhi/Article/program/Oracle/201311/16583
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。
ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。
特点
1、完整的数据管理功能:[2]
1)数据的大量性
2)数据的保存的持久性
3)数据的共享性
4)数据的可靠性
2、完备关系的产品:
1)信息准则---关系型DBMS的所有信息都应在逻辑上用一种方法,即表中的值显式地表示;
2)保证访问的准则
3)视图更新准则---只要形成视图的表中的数据变化了,相应的视图中的数据同时变化
4)数据物理性和逻辑性独立准则
3、分布式处理功能:
ORACLE数据库自第5版起就提供了分布式处理能力,到第7版就有比较完善的分布式数据库功能了,一个ORACLE分布式数据库由oraclerdbms、sqlNet、SQLCONNECT和其他非ORACLE的关系型产品构成。
4、用ORACLE能轻松的实现数据仓库的 *** 作。
这是一个技术发展的趋势,不在这里讨论。
优点
■ 可用性强
■ 可扩展性强
■ 数据安全性强
■ 稳定性强
获取系统记录行数 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
以上就是关于oracle数据库入门教程全部的内容,包括:oracle数据库入门教程、Oracle数据库PL/SQL介绍、数据库oracle简介等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)