在用PowerDesigner进行反向工程时,发现字段的默认值没有传过来,而在正向工程时又没有问题,这是一个很严重的问题。经过研究发现是由于oracle数据字典all_tab_columns中默认值data_default数据类型的原因造成的,至使PowerDesigner 15.3都还没有解决这个问题。
由于oracle中 data_default的类型定义为long,造成在反向工程时转换不能成功,反向工程后默认值始络为空。
解决方法:
在oracle中建立一个函数
CREATE OR REPLACE FUNCTION get_col_default
(
p_owner IN all_tab_cols.owner%TYPE,
p_table_name IN all_tab_cols.table_name%TYPE,
p_column_name IN all_tab_cols.column_name%TYPE
)
RETURN VARCHAR2 AS
l_data_default LONG;
BEGIN
SELECT data_default
INTO l_data_default
FROM all_tab_columns
WHERE owner = p_owner
AND table_name = p_table_name
AND column_name = p_column_name;
RETURN substr(l_data_default, 1, 4000);
END;
/
在PowerDesigner中做设置
进入Database-->Edit Current DBMS...-->General-->Script-->Objects-->Column-->SqlListQuery
修改SqlListQuery中的代码:
c.data_default, 修改为-->
get_col_default(c.owner,c.table_name,c.column_name) as data_default,
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9932141/viewspace-688873/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9932141/viewspace-688873/