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 VARCHAR2
AS
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;