ebs二次開發2
CREATE OR REPLACE package APPS.cux_gen_proc_sql as
procedure gen_insert_sp(v_table_name varchar2,v_proc_name varchar2);
end ;
/
CREATE OR REPLACE package body APPS.cux_gen_proc_sql as
procedure gen_insert_sp(v_table_name varchar2,v_proc_name varchar2)
is
CURSOR c1 IS
SELECT owner,table_name,
column_name,
data_type,
data_length,
nullable
from dba_tab_columns
WHERE table_name = upper(v_table_name)
order by column_id ;
v_count NUMBER := 0;
v_tatol NUMBER := 0;
v_column_name varchar2(30);
BEGIN
SELECT COUNT(*)
INTO v_tatol
FROM dba_tab_columns
WHERE table_name = upper(v_table_name);
dbms_output.put_line('PROCEDURE ' || v_proc_name || '(');
FOR c1_rec IN c1 LOOP
if lower(c1_rec.column_name) not in('last_update_date' ,'creation_date') then
if length(c1_rec.column_name)>28 then
v_column_name:=substr(lower(c1_rec.column_name),1,28);
else
v_column_name:=lower(c1_rec.column_name);
end if;
dbms_output.put(to_char('p_') || v_column_name || ' ' || to_char(lower(c1_rec.data_type)) );
if c1_rec.nullable='Y' then
dbms_output.put(' default null');
end if;
v_count := v_count + 1;
IF v_count < nvl(v_tatol, 0) then
dbms_output.put_line(',');
else
dbms_output.put_line(' ');
end if;
end if;
END LOOP;
dbms_output.put_line(' ) is ');
dbms_output.put_line('BEGIN');
v_count :=0;
FOR c1_rec IN c1 LOOP
v_count := v_count + 1;
IF v_count = 1 THEN
dbms_output.put_line('INSERT INTO ' || c1_rec.table_name);
dbms_output.put_line('( ');
END IF;
IF v_count = nvl(v_tatol, 0) THEN
dbms_output.put_line(' ' || c1_rec.column_name);
dbms_output.put_line(')');
dbms_output.put_line('VALUES(');
ELSE
dbms_output.put_line(' ' || c1_rec.column_name || ' ,');
END IF;
END LOOP;
v_count := 0;
FOR c1_rec IN c1 LOOP
v_count := v_count + 1;
if length(c1_rec.column_name)>28 then
v_column_name:=to_char('p_') || substr(lower(to_char(c1_rec.column_name)),1,28);
else
v_column_name:=to_char('p_') || lower(to_char(c1_rec.column_name));--to_char('p_') ||
end if;
if to_char(lower(c1_rec.column_name)) in('last_update_date','creation_date') then
v_column_name:= to_char('sysdate');
end if;
IF v_count = nvl(v_tatol, 0) THEN
dbms_output.put_line(' ' || v_column_name);
dbms_output.put_line(');');
ELSE
dbms_output.put_line(' ' || v_column_name || ' ,');
END IF;
END LOOP;
dbms_output.put_line(' ');
dbms_output.put_line('END '|| v_proc_name ||';');
dbms_output.put_line(' ');
end gen_insert_sp;
end;
/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11536986/viewspace-620199/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ebs二次開發1
- ebs二次開發3
- ebs二次開發4
- ebs二次開發5
- ebs二次開發6
- ebs二次開發7
- EBS開發筆記-2筆記
- ECshop 二次開發模板教程2
- EBS開發筆記-1筆記
- EBS開發環境搭建開發環境
- 【EBS】主機併發程式開發
- EBS FORM PLL 開發入門ORM
- Application(EBS)開發整理(轉)APP
- 網站修改二次開發,網站二次開發流程網站
- Dresdon二次開發
- ThinkS二次開發
- SOLIDWORKS二次開發Solid
- NX二次開發-使用NXOPEN C++嚮導模板做二次開發C++
- 基於Chappie-II的二次開發日誌-2APP
- Oracle EBS 基於Host併發程式的開發Oracle
- UG二次開發筆記筆記
- SOLIDWORKS二次開發形式Solid
- kubernetes 二次開發
- 基於 solox 二次開發
- 小說APP原始碼開發,支援二次開發功能APP原始碼
- openfire 3.8.2 原始碼部署 /開發配置 / 二次開發原始碼
- 一個開源的OJ二次開發
- Scratch3 二次開發系列
- Voyager 的使用及二次開發
- SOLIDWORKS二次開發介紹Solid
- 基於ecshop的二次開發
- 團隊專案:二次開發
- ECshop 二次開發模板教程1
- ECshop 二次開發模板教程3
- ECshop 二次開發模板教程4
- ecshop 二次開發,原始碼分析原始碼
- C++大作業二次開發C++
- EBS之JTF_Grid 開發總結