精华内容
下载资源
问答
  • Oracle默认值

    2021-05-08 06:52:12
    以这个程序为例,Oracle默认值create or replaceFUNCTION testFunction(varNumber IN NUMBER DEFAULT 0)RETURN NUMBERASBEGINdbms_output.put_line(varNumber);RETURN varNumber;END;这里是如果对varNu...

    我有一个关于Oracle中PL/SQL函数默认值的简短问题。以这个程序为例,Oracle默认值

    create or replace

    FUNCTION testFunction

    (

    varNumber IN NUMBER DEFAULT 0

    )

    RETURN NUMBER

    AS

    BEGIN

    dbms_output.put_line(varNumber);

    RETURN varNumber;

    END;

    这里是如果对varNumber没有指定值时,该函数被调用的想法,那么它就会采取0

    现在的价值,我的问题是,我的功能都可以从所谓的一个Web服务层,它将始终作为参数的值传入NULL,而参数的值没有值。 Oracle将NULL解释为一个值,因此不会将varNumber初始化为其默认值0.

    我可以看出为什么这种方法有意义,但我想知道是否有方法来覆盖此行为,并使其成为如此如果传递NULL值,它会导致Oracle分配在函数头中指定的显式DEFAULT值?

    我也考虑过做手工检查的选项...

    IF(varNumber IS NULL) THEN

    varNumber := 0;

    END IF;

    不过,也有数以百计的功能,在这可能是一个问题,更不用说大量的每个函数的参数,等等如果我能找到更一般的解决方案,我更喜欢它。

    欢迎您提供任何见解。

    展开全文
  • 将一个列的默认值修改为null之后,和没改之前数据字典的差别--0 创建测试表,对默认值没有进行任何指定SQL> create table T_DEFAULT_TEST (id number);表已创建。--1 查看数据字典,DATA_DEFAULT没有值SQL> ...

    将一个列的默认值修改为null之后,和没改之前数据字典的差别

    --0 创建测试表,对默认值没有进行任何指定

    SQL> create table T_DEFAULT_TEST (id number);

    表已创建。

    --1 查看数据字典,DATA_DEFAULT没有值

    SQL> select A.COLUMN_NAME,A.DATA_DEFAULT

    2 from user_tab_columns a where a.TABLE_NAME = 'T_DEFAULT_TEST';

    COLUMN_NAME DATA_DEFAULT

    ------------------------------ ----------------------------------------

    ID

    --2 修改默认值为1

    SQL> alter table T_DEFAULT_TEST modify (id default 1);

    表已更改。

    --查看数据字典,DATA_DEFAULT为1,正常

    SQL> select A.COLUMN_NAME,A.DATA_DEFAULT

    2 from user_tab_columns a where a.TABLE_NAME = 'T_DEFAULT_TEST';

    COLUMN_NAME DATA_DEFAULT

    ------------------------------ ----------------------------------------

    ID 1

    --3 修改默认值为null,也就是取消默认值的设定,

    SQL> alter table T_DEFAULT_TEST modify (id default null);

    表已更改。

    --结果和预期不一样,预期DATA_DEFAULT不显示任何东西,结果显示null

    SQL> select A.COLUMN_NAME,A.DATA_DEFAULT

    2 from user_tab_columns a where a.TABLE_NAME = 'T_DEFAULT_TEST';

    COLUMN_NAME DATA_DEFAULT

    ------------------------------ ----------------------------------------

    ID null

    从现在开始数据字典种DATA_DEFAULT就像牛皮糖一样,怎么也去不掉,无论如何都无法回复到初始状态

    COLUMN_NAME DATA_DEFAULT

    展开全文
  • 几天前有人问我设置了字段的默认值为什么无效呢?查找了一些资料,做了一个总结:createtableTEST(IDVARCHAR2(64),AVARCHAR2(3)default'0',NAMEVARCHAR2(100));SQL>insertintotest(a,name)values(null,'test');1...

    几天前有人问我设置了字段的默认值为什么无效呢?查找了一些资料,做了一个总结:

    createtableTEST

    (

    IDVARCHAR2(64),

    AVARCHAR2(3)default'0',

    NAMEVARCHAR2(100)

    );

    SQL>insertintotest(a,name)values(null,'test');

    1rowinserted

    SQL>select*fromtest;

    ANAME

    -----------------------------------------------------------------------------------

    test

    在上面的例子中,虽然A列设置了默认值为0,但插入空仍然无效。

    其实对于默认值,Oracle支持两种方式:

    Default关键字

    不指定列

    先看第一种方式,

    SQL>insertintotest(a,name)values(default,'test');

    1rowinserted

    SQL>select*fromtest;

    ANAME

    -----------------------------------------------------------------------------------

    0test

    列A终于有了默认值0。

    再看第二种方式,

    SQL>insertintotest2(name)values('test');

    1rowinserted

    SQL>select*fromtest2;

    ANAME

    -----------------------------------------------------------------------------------

    0test

    展开全文
  • –这样也会报错,oracle中”会当成null处理 INSERT INTO AAA_Huch(StudentID,StudentName) VALUES(‘bb’,”); –只能这样,插入一个空格符 INSERT INTO AAA_Huch(StudentID,StudentName) VALUES(‘bb’,’ ‘); ...

    SELECT * FROM OBD_DATA;

    CREATE TABLE AAA_Huch

    (

    StudentID varchar2(50) primary key,

    StudentName varchar2(50) default ” not null

    );

    SELECT * FROM AAA_HUCH;

    –由于StudentName是not null,插入的时候不能赋null,否则会报错

    INSERT INTO AAA_Huch(StudentID)

    VALUES(‘AA’);

    –也不能这样

    INSERT INTO AAA_Huch(StudentID,StudentName)

    VALUES(‘AA’,NULL);

    –这样也会报错,oracle中”会当成null处理

    INSERT INTO AAA_Huch(StudentID,StudentName)

    VALUES(‘bb’,”);

    –只能这样,插入一个空格符

    INSERT INTO AAA_Huch(StudentID,StudentName)

    VALUES(‘bb’,’ ‘);

    alter table aaa_huch

    add sex int default 0;

    INSERT INTO AAA_Huch(StudentID,StudentName)

    VALUES(‘cc’,’cc’);

    select * from alarm_info;

    展开全文
  • 我们正在测试Oracle的工作,并负责在Oracle上构建所有数据库对象(表,过程,触发器等),我们目前使用的是Microsoft SQL Server 2008 R2。我们几乎为所有ID列使用uniqueidentifier。我用这个函数来创建GUID:CREATE ...
  • 有没有办法在没有用户输入的情况下在sqlplus脚本中设置参数的默认值?例如,我有一个sql脚本sessions.sql:SET VERIFY OFFSET TERMOUT OFFDEFINE uname = '&1'COLUMN search_uname new_value search_unameSELECT ...
  • 我想在Oracle对象类型中设置默认值,但它需要在构造函数中传递所有属性 .无论如何,我只能在构造函数中传递必需的属性,该属性需要默认值 .请参阅以下详细信息SQL> CREATE TYPE TYPE_SUB AS OBJECT(2 COL1 NUMBER...
  • 直接上代码 conn.Open(); OracleCommandcommand=newOracleCommand("SELECT TABLE_NAME, COLUMN_NAME, DATA_DEFAULT FROM ALL_TAB_COLS",conn); command.InitialLONGFetchSize=-1; OracleDataReader reader =command...
  • 遇上了artTemplate做的东西js现在最牛的地方是 有了Node.js后,前后端的界限几乎都消失了,围绕着它,出现了一整套生态体系. 在生态方面,比php好太多了.(转)C#...lpar; get &...
  • 我有一个带有no-args构造函数的对象类型,但是当我将它指定为该类型列的默认值时,我得到ORA-00904:无效的标识符错误.例:CREATE OR REPLACE TYPE test_t AS OBJECT(val NUMBER(10),CONSTRUCTOR FUNCTION test_t ...
  • 这个问题为什么要讨论呢,是有历史根源的,我们从Oracle 10G开始说起。在11G以前,一个大表,如果要添加一个新列,且新列有默认值,如果使用alter table xx add xx_1 number default 1000; 这类语句设置,那将非常...
  • 我有一个无参数构造函数的对象类型,但是...Oracle:指定对象类型的默认值列实施例:CREATE OR REPLACE TYPE test_t AS OBJECT(val NUMBER(10),CONSTRUCTOR FUNCTION test_t return self as result)CREATE OR REPLA...
  • oracle 修改默认值

    2021-05-08 17:58:35
    将一个列的默认值修改为null之后,和没改之前数据字典的差别--0 创建测试表,对默认值没有进行任何指定SQL> create table T_DEFAULT_TEST (id number);表已创建。--1 查看数据字典,DATA_DEFAULT没有值SQL> ...
  • --创建test表,为其中test3字段设置默认值 create table test( test1 number, test2 varchar2(20), test3 varchar2(20) DEFAULT 'ABC' ); --正常插入(图中1行) insert into TEST(test1, test2, test3) ...
  • 欢迎进入Oracle社区论坛...进入 oracle统计无记录时写默认值 select nvl(max(t1.packagesize),0) from ( select decode(count(t.per_bus_code),0,'1') per_bus_code,decode(count(t.buss_code),0,'1') buss_code,dec...
  • Oracle的诸多SQL函数中,笔者认为最容易被忽视的强大功能函数就是decode。在Decode函数的帮助下,很多要使用case when字句或者要使用PL/SQL游标处理的需求,可以方便的在一句SQL中加以实现。本篇主要从介绍Decode...
  • 这个头衔很残酷,但我不知道怎么说.我有一个绑定到user_id的键值表,用于存储整个站点的用户首选项.如果用户没有进入并更新他们的任何设置,那么每当我要求一个密钥时(比如说“FAVORITE_COLOR”它将为null,所以我需要拉...
  • Oracle中默认创建的表

    2021-05-08 17:03:11
    xxxxxxxint c; int b; bool h;JAVA——利用wait和notify实现生产者和消费者经典的消费者和生产者的的实现: 注意事项: 1:在循环里面用wait(),因为当线程获得了锁,但是有可能还没有满足其他条件: 2:公用的缓冲池要用锁...
  • =====oracle 日期调置默认值===========创建时定义: CREATE TABLE tabName("date1" date DEFAULT sysdate)-- CREATE TABLE tabName(字段 date DEFAULT sysdate)或创建后再修改: ALTER TABLE tabName MODIFY...
  • createtableTEST(IDVARCHAR2(64),AVARCHAR2(3)default'0',NAMEVARCHAR2(100));SQL>insertintotest(a,name)values(null,'test');...ANAMEtest在上面的例子中,虽然A列设置了默认值为0,但插入空仍然无效。其实对于...
  • Oracle 12c中,可以使用序列的NEXTVAL and CURRVAL的值作为默认值,来实现列自增!一、使用序列的NEXTVAL and CURRVAL的值作为默认值创建序列CREATE SEQUENCE t1_seq;建表CREATE TABLEt1 (idNUMBER DEFAULTt1_seq....
  • Oracle创建表语句(Create table)语法详解及示例、、 C# 调用Oracle 存储过程返回数据集 实例 Oracle创建表语句(Create table)语法详解及示例 2010-06-28 13:59:13| 分类: Oracle PL/SQL|字号 订阅 创建表(Create...
  • oracle增加字段带默认值

    千次阅读 2021-01-17 14:47:33
    oracle 11gR2版本中,对大表增加带默认值的字段,需要拆分成多个步骤,否则会长时间锁表。如下图:对260万数据的表加带默认值的字段,执行超过2分钟。我们的规范做法步骤为:(1)加字段alter table T_ORDER add ...
  • 非空字段空值的产生

    2021-05-03 02:30:20
    ID NAME TYPE ---------- ------------------------------ -------- 1 a Oracle确实允许NOT NULL列的默认值为NULL,如果不指定默认值那么就相当于默认值为NULL,但是对于11g新增的新特性而言,DEFAULT为NULL是要...
  • Oracle 11g以前,如果要在一个大表中增加一列,并设置默认值,那将是一个非常悲剧的事情.有些时候不得不选择在线重定义功能来实现Oracle 11g增加列,并带默认值的新特性[日期:2014-04-05]来源:Linux社区作者:Linux...
  • 永久链接:...在oracle 11g以前,如果需要在一个表中执行类似如下的命令,而且这个表本身已经有很多数据,那么,这个操作将可能花费很长的时间,并且可能阻塞应用:SQL>alter tab...
  • 修改表增加字段默认值default对个生产库的表增加1个字段.字段类型是INT型, 表数据有2千万条,alter table table_name add xxoo number(4) default 0 ;因此 不仅要修改字典,还要刷新全部数据.1) 在ALTER sql中有带缺省...
  • 需求:将所有表中字段默认值为CO000002的改为CO000001 思路: 1.查找出所有表字段默认值为CO000002的字段信息(表名称)
  • AsianJA16EUCEUC 24-bit JapaneseJA16EUCTILDEThe same as JA16EUC except for the way that the wave dash and the tilde are mapped to and from UnicodeJA16SJISShift-JIS 16-bit Japanese. The same as JA16SJIS...
  • 在创建数据库表时,你可以指定一个 default 值(即默认值)。对数据库字段使用默认值有助于将数据库设计问题与应用程序代码隔离。可以在以后某个时候通过一条 alter table 命令改变一个字段的默认值,改变之后应用程序...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 106,789
精华内容 42,715
关键字:

oracle默认值