大多数SQL开发人员都知道并使用纳拉亚纳维亚斯Kondreddi的sp_generate_inserts
从http://vyaskn.tripod.com/code/generate_inserts.txtsp_generate_inserts甲骨文
是否有甲骨文类似的东西?
大多数SQL开发人员都知道并使用纳拉亚纳维亚斯Kondreddi的sp_generate_inserts
从http://vyaskn.tripod.com/code/generate_inserts.txtsp_generate_inserts甲骨文
是否有甲骨文类似的东西?
由于Oracle提供了名为SQL Developer的工具,因此它具有从表数据生成插入脚本的功能。
如果你想要一个软件包来完成所有的工作(虽然SQL Developer,TOAD等都可以做到)。但最接近的,我已经看到了sp_generate_inserts是:
“PL/SQL接口生成器” http://sourceforge.net/projects/plsqlintgen/
在下载运行两个脚本之后,你必须这样做:
CREATE TABLE XYZ(AA VARCHAR2(50) , BB NUMBER(10,2));
declare
TPT XTAB_PKG.TAB_PARAMETERS_TYP ;
S xtab_pkg.SQLDATA_TYP ;
E XTAB_PKG.xerror_typ ;
BEGIN
TPT.OWNER := 'ownerName';
TPT.TABLE_NAME := 'xyz';
TPT.PACKAGE_NAME := 'xyz_pkg';
TPT.FILE_PATH := NULL ;
TPT.FILE_NAME := NULL;
xtab_pkg.Generate(tpt,s,e);
for i in s.first..s.last
loop
DBMS_OUTPUT.PUT_LINE(s(I));
end loop;
END ;
并且这将为输入表发出创建SPEC/BODY的CRUD(这不会创建包,它只是将包脚本存储在s变量中,例如:
例如
/* PL/SQL Interface for Table xyz*/
CREATE SEQUENCE xyz_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 999999999999999999999999999 NOCYCLE NOORDER NOCACHE
/
create or replace package xyz_pkg is
SUCCESS constant varchar2(20) := 'SUCCESS'; ERROR constant varchar2(20) := 'ERROR'; WARNING constant varchar2(20) := 'WARNING';
type xerror_typ is record (status varchar2(50),message varchar2(2000));
type xyz_typ is record
(
);
type xyz_ref is r.......
Procedure Add (r in out xyz_typ, p_commit in boolean, e out xerror_typ);
Procedure Add (t in out xyz_tab, p_commit in boolean, e out xerror_typ);
Procedure Del (p_ in xyz.%type, p_commit in boolean, e out xerror_typ);
Procedure Del (t in xyz_tab, p_commit in boolean, e out xerror_typ);
Procedure Upd (r in out xyz_typ, p_commit in boolean, e out xerror_typ);
Procedure Upd (t in out xyz_tab, p_commit in boolean, e out xerror_typ);
即使这并不完全符合您的需要,您应该能够将逻辑提取到您自己的方式。 (只是一张纸条,我根本不附属于这个项目)