Quick Trick About Using Dbms_Metadata With Forms_DDL In Oracle Forms
2016-12-25 19:15
701 查看
[align=justify]Example is given below to fetch any Oracle objects DDL script using DBMS_Metadata.Get_DDL command in Oracle Forms using Forms_DDL command.[/align] [align=justify] [/align] [align=justify]You can download this form for free including source code with following link from Google Drive Dbms_Utility.fmb[/align] [align=justify]
You may need to create a table in current schema/user by which you are logging with and below is the script for this:
Create Table DDL_Script (ddl varchar2(1000));
[/align] [align=justify]I will add further more tabs related to Dbms utility tasks to this form and will share also.[/align] [align=justify] [/align]
[align=justify] [/align] [align=justify]Following is the code written in Show DDL push button:[/align] [align=justify]DECLARE[/align] [align=justify] v VARCHAR2 (4000);[/align] [align=justify] objtpe VARCHAR2 (100);[/align] [align=justify]BEGIN[/align] [align=justify] -- v := dbms_metadata.get_ddl('TABLE', :objname, user);[/align] [align=justify] SELECT object_type[/align] [align=justify] INTO objtpe[/align] [align=justify] FROM user_objects[/align] [align=justify] WHERE object_name = :objname;[/align] [align=justify] [/align] [align=justify] :objtype := objtpe;[/align] [align=justify] [/align] [align=justify] FORMS_DDL ('drop table ddl_script');[/align] [align=justify] FORMS_DDL( 'create table ddl_script as select dbms_metadata.get_ddl('[/align] [align=justify] || CHR (39)[/align] [align=justify] || objtpe[/align] [align=justify] || CHR (39)[/align] [align=justify] || ','[/align] [align=justify] || CHR (39)[/align] [align=justify] || :objname[/align] [align=justify] || CHR (39)[/align] [align=justify] || ', user) ddl from dual');[/align] [align=justify] [/align] [align=justify] IF FORM_SUCCESS[/align] [align=justify] THEN[/align] [align=justify] SELECT ddl[/align] [align=justify] INTO :ddltxt[/align] [align=justify] FROM ddl_script[/align] [align=justify] WHERE ROWNUM = 1;[/align] [align=justify] ELSE[/align] [align=justify] :statbar := 'Message: Object does not exists.';[/align] [align=justify] FORMS_DDL ('create table ddl_script (ddl varchar2(1000))');[/align] [align=justify] END IF;[/align] [align=justify]END;[/align] [align=justify] [/align] [align=justify]Following is the code written in When-new-form-instance trigger:[/align] [align=justify] [/align] [align=justify]set_window_property(forms_mdi_window, window_state, maximize);[/align] [align=justify] [/align] [align=justify]DECLARE[/align] [align=justify] rg_list_id RECORDGROUP;[/align] [align=justify] rg_name VARCHAR2 (20) := 'OBJECTTYPES';[/align] [align=justify] ret_code NUMBER;[/align] [align=justify] --The following holds a SELECT query from which the list elements are derived.[/align] [align=justify] v_select VARCHAR2 (300);[/align] [align=justify]BEGIN[/align] [align=justify] BEGIN[/align] [align=justify] FORMS_DDL ('drop table ddl_script');[/align] [align=justify] EXCEPTION[/align] [align=justify] WHEN OTHERS[/align] [align=justify] THEN[/align] [align=justify] NULL;[/align] [align=justify] END;[/align] [align=justify] [/align] [align=justify] BEGIN[/align] [align=justify] FORMS_DDL ('create table ddl_script (ddl varchar2(1000))');[/align] [align=justify] EXCEPTION[/align] [align=justify] WHEN OTHERS[/align] [align=justify] THEN[/align] [align=justify] NULL;[/align] [align=justify] END;[/align] [align=justify] [/align] [align=justify] ret_code := POPULATE_GROUP ('OBJECTNAMES');[/align] [align=justify] POPULATE_LIST ('OBJNAME', 'OBJECTNAMES');[/align] [align=justify]END;[/align] [align=justify] [/align] [align=justify]You can find the record group details itself in form which I am sharing with this post.[/align]
You may need to create a table in current schema/user by which you are logging with and below is the script for this:
Create Table DDL_Script (ddl varchar2(1000));
[/align] [align=justify]I will add further more tabs related to Dbms utility tasks to this form and will share also.[/align] [align=justify] [/align]
[align=justify] [/align] [align=justify]Following is the code written in Show DDL push button:[/align] [align=justify]DECLARE[/align] [align=justify] v VARCHAR2 (4000);[/align] [align=justify] objtpe VARCHAR2 (100);[/align] [align=justify]BEGIN[/align] [align=justify] -- v := dbms_metadata.get_ddl('TABLE', :objname, user);[/align] [align=justify] SELECT object_type[/align] [align=justify] INTO objtpe[/align] [align=justify] FROM user_objects[/align] [align=justify] WHERE object_name = :objname;[/align] [align=justify] [/align] [align=justify] :objtype := objtpe;[/align] [align=justify] [/align] [align=justify] FORMS_DDL ('drop table ddl_script');[/align] [align=justify] FORMS_DDL( 'create table ddl_script as select dbms_metadata.get_ddl('[/align] [align=justify] || CHR (39)[/align] [align=justify] || objtpe[/align] [align=justify] || CHR (39)[/align] [align=justify] || ','[/align] [align=justify] || CHR (39)[/align] [align=justify] || :objname[/align] [align=justify] || CHR (39)[/align] [align=justify] || ', user) ddl from dual');[/align] [align=justify] [/align] [align=justify] IF FORM_SUCCESS[/align] [align=justify] THEN[/align] [align=justify] SELECT ddl[/align] [align=justify] INTO :ddltxt[/align] [align=justify] FROM ddl_script[/align] [align=justify] WHERE ROWNUM = 1;[/align] [align=justify] ELSE[/align] [align=justify] :statbar := 'Message: Object does not exists.';[/align] [align=justify] FORMS_DDL ('create table ddl_script (ddl varchar2(1000))');[/align] [align=justify] END IF;[/align] [align=justify]END;[/align] [align=justify] [/align] [align=justify]Following is the code written in When-new-form-instance trigger:[/align] [align=justify] [/align] [align=justify]set_window_property(forms_mdi_window, window_state, maximize);[/align] [align=justify] [/align] [align=justify]DECLARE[/align] [align=justify] rg_list_id RECORDGROUP;[/align] [align=justify] rg_name VARCHAR2 (20) := 'OBJECTTYPES';[/align] [align=justify] ret_code NUMBER;[/align] [align=justify] --The following holds a SELECT query from which the list elements are derived.[/align] [align=justify] v_select VARCHAR2 (300);[/align] [align=justify]BEGIN[/align] [align=justify] BEGIN[/align] [align=justify] FORMS_DDL ('drop table ddl_script');[/align] [align=justify] EXCEPTION[/align] [align=justify] WHEN OTHERS[/align] [align=justify] THEN[/align] [align=justify] NULL;[/align] [align=justify] END;[/align] [align=justify] [/align] [align=justify] BEGIN[/align] [align=justify] FORMS_DDL ('create table ddl_script (ddl varchar2(1000))');[/align] [align=justify] EXCEPTION[/align] [align=justify] WHEN OTHERS[/align] [align=justify] THEN[/align] [align=justify] NULL;[/align] [align=justify] END;[/align] [align=justify] [/align] [align=justify] ret_code := POPULATE_GROUP ('OBJECTNAMES');[/align] [align=justify] POPULATE_LIST ('OBJNAME', 'OBJECTNAMES');[/align] [align=justify]END;[/align] [align=justify] [/align] [align=justify]You can find the record group details itself in form which I am sharing with this post.[/align]
相关文章推荐
- Trigger Execution Sequence Of Oracle Forms
- Why And When To Use Pre-Update and Pre-Insert Triggers In Oracle Forms
- How To PLAY_SOUND in Oracle Forms
- Get_File_Name Usage in Oracle Forms 6i
- FRM-10001, FRM-10002, FRM-10003 Oracle Form Builder Error Solution
- Example of Get_File_Name Function in Oracle Forms
- Shifting List Item Values From One List To Another In Oracle Forms
- Creating List Item in Oracle D2k
- Using GET_GROUP_SELECTION For Record Groups in Oracle Forms
- Examples For When-Validate-Item trigger In Oracle Forms
- Adding Value To Combo List at Runtime in Oracle Forms
- oracle用户密码设为不过期
- Creating Dynamic LOV in Oracle D2k Forms
- How To Use RUN_PRODUCT In Oracle Forms
- Creating Object Library OLB in Oracle D2k Form
- Horizontal Toolbar With Navigational Buttons Form Sample For Oracle Forms 10g/11g
- Using Post-Form Trigger In Oracle Forms
- Using Pre-Form Trigger In Oracle Forms
- Populate A List Item With Record Group In Oracle Forms Using Populate_List And Create_Group_From_Query Command
- An Example Of Validating Text Item In Oracle Forms Using When-Validate-Item Trigger