当前位置: 代码迷 >> Oracle开发 >> oracle default,该如何解决
  详细解决方案

oracle default,该如何解决

热度:69   发布时间:2016-04-24 07:33:55.0
oracle default
create table table1(
 
  id NUMBER(10),
  t1 VARCHAR2(10) default '111'

);

执行成功的
update table1 set t1 = default;

现在我想这样执行,请问如何处理?
select * from table1 where t1 = default;


------解决方案--------------------
这个值可以查出来,但是一般是LONG型的,而且转换也比较麻烦。如果你业务层是Java等,建议你建立一个静态接口或者类来存储这些缺省值。如果是你做PL/SQL开发,就将其存储一个表中(将缺省的列值都存到这表中统一管理)。
------解决方案--------------------
第一步:建立一个函数转换Long与Varchar类型
SQL code
CREATE OR REPLACE FUNCTION LongToString( COL_NAME VARCHAR2,TAB_NAME VARCHAR2) RETURN VARCHAR2AS    Result_Value LONG;BEGIN    SELECT DATA_DEFAULT INTO Result_Value FROM ALL_TAB_COLUMNS WHERE COLUMN_NAME=COL_NAME AND TABLE_NAME=TAB_NAME;    RETURN  REPLACE(TRANSLATE(TRIM(Result_Value),CHR(13)||CHR(10),','),'''','');END;
  相关解决方案