ITPub博客

首页 > 数据库 > Oracle > oracle中利用数据字典生成代码

oracle中利用数据字典生成代码

原创 Oracle 作者:zgy13121 时间:2008-10-18 13:57:38 0 删除 编辑
--注意表名用相应表名去替换下面的表名都为oper_log --fb/vo 属性 column properties format a256; select 'private String '||LOWER(A.COLUMN_NAME)||';//'||B.COMMENTS properties FROM user_tab_cols A,user_col_comments B WHERE A.TABLE_NAME=B.TABLE_NAME AND LOWER(A.TABLE_NAME)='oper_log' and a.COLUMN_NAME=b.COLUMN_NAME ; --生成sql语句 --注意Sys_Connect_By_Path参数的字段中有','时不能用','去分隔,改为用'@@',然后再替换为',' --用Sys_Connect_By_Path(COLUMN_NAME, ',')时将行转换成列时,每一行都加',',所以第一个要去掉用substr(str,2) --对日期型的格式为'yyyy-mm-dd hh:MI:ss',可自己替换 column s format a200; Select replace('SELECT '||substr(Sys_Connect_By_Path(COLUMN_NAME, ','),2)||' FROM '||table_name||' WHERE 1=1','@@',',') S From ( SELECT Rownum Rid, DECODE(A.DATA_TYPE,'DATE', 'TO_CHAR('||A.COLUMN_NAME||'@@'||CHR(39)||'yyyy-mm-dd hh:MI:ss'||CHR(39)||') '||A.COLUMN_NAME, A.COLUMN_NAME) COLUMN_NAME,TABLE_NAME FROM USER_TAB_COLS A WHERE A.TABLE_NAME='OPER_LOG' ) Where Rid = ( Select Count(*) FROM USER_TAB_COLS A WHERE A.TABLE_NAME='OPER_LOG' ) start With Rid = 1 Connect By Prior Rid+1 = Rid ; --也可以写成以下这种 column s format a200; --注意Sys_Connect_By_Path参数的字段中有','时不能直接用','去分隔,改为用' , ' Select 'SELECT '||substr(Sys_Connect_By_Path(COLUMN_NAME, ' , '),4)||' FROM '||table_name||' WHERE 1=1' S From ( SELECT Rownum Rid, DECODE(A.DATA_TYPE,'DATE', 'TO_CHAR('||A.COLUMN_NAME||','||CHR(39)||'yyyy-mm-dd hh:MI:ss'||CHR(39)||') '||A.COLUMN_NAME, A.COLUMN_NAME) COLUMN_NAME,TABLE_NAME FROM USER_TAB_COLS A WHERE A.TABLE_NAME='OPER_LOG' ) Where Rid = ( Select Count(*) FROM USER_TAB_COLS A WHERE A.TABLE_NAME='OPER_LOG' ) start With Rid = 1 Connect By Prior Rid+1 = Rid ; --vo设置生成值 --oracle中的initcap与java里的有点区别 --oracle里如user_id用initcap取的是User_Id而java里的是User_id,注意有下划线的要手动修改 column s format a200; SELECT 'vo.set'||initcap(A.COLUMN_NAME)||'(dset.getString("'||A.COLUMN_NAME||'"));' s FROM USER_TAB_COLS A WHERE lower(A.TABLE_NAME)='oper_log' ;[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11419868/viewspace-1012078/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: aix系统备份
下一篇: sql_util_消耗资源
请登录后发表评论 登录
全部评论

注册时间:2008-09-27

  • 博文量
    58
  • 访问量
    245378