标签: notnull

ORA 01400 和 ORA 02296:无法插入空值或将添加的列属性修改为 NOT NULL

“修改您的查询以添加一个从新工资中减去旧工资的列。标记该列增加。运行修改后的查询。”

好吧,根据我的解释,我首先尝试通过脚本添加列:

ALTER TABLE EMPLOYEES ADD (
    INCREASE2   NUMBER(6));
Run Code Online (Sandbox Code Playgroud)

然后:

INSERT INTO EMPLOYEES(INCREASE2)
SELECT (salary*1.155) - salary FROM EMPLOYEES;
Run Code Online (Sandbox Code Playgroud)

SQL 错误:ORA-01400:não é possível inserir NULL em ("HR"."EMPLOYEES"."EMPLOYEE_ID") 01400. 00000 - "不能将 NULL 插入 (%s)"

"HR"."EMPLOYEES"."EMPLOYEE_ID" 是主键。

  1. 我不是要插入 NULL 值;
  2. 我不知道为什么 oracle 不接受我的条目。我尝试通过执行基本插入来检查表达式中是否存在任何语法错误:

    INSERT INTO EMPLOYEES(INCREASE2)
    VALUES ('whatever');
    
    Run Code Online (Sandbox Code Playgroud)

我仍然收到错误。

我尝试然后将该列修改为不为空

ALTER TABLE EMPLOYEES
MODIFY
(INCREASE2  NUMBER(6) NOT NULL);
Run Code Online (Sandbox Code Playgroud)

和:

02296 00000 - “无法启用 (%s.%s) - 找到空值”
*原因:alter table enable 约束失败,因为表
包含不满足约束的值。
*行动:明显

我为这个练习找到了一个简单的解决方案,但我仍然很好奇为什么我的代码没有成功。

解析度:

SELECT employee_id, last_name, salary,
    ROUND(salary * 1.155, …
Run Code Online (Sandbox Code Playgroud)

oracle ddl notnull

2
推荐指数
1
解决办法
2万
查看次数

PostgreSQL - 非空且非空字符串的空值

我在 PostgreSQL 表上运行了这个查询:

select * wkt from table  where column <>'' and  column is not null
Run Code Online (Sandbox Code Playgroud)

..并意外地收到了几行在该列中没有可见值的行。为什么是这样?该列中是否有这些行的“隐藏”值、损坏的表或其他内容?

sql postgresql notnull

2
推荐指数
1
解决办法
9838
查看次数

返回null的方法中的java @Nonnull批注

我有一个从哈希图中获取内容的方法,一个简化的示例(虽然没有多大意义,但目前已经足够好了)是:

private Map<String,String> map = new HashMap<String,String>();

public String get(String key) {
    return map.get(key);
}
Run Code Online (Sandbox Code Playgroud)

当给定键的条目明显不存在时,此方法可以返回null。事实是,我想对此方法进行注释@NonNull(因为它用在了数不胜数的地方,而且我不喜欢Intellij向我发送有关生产NPE的检查警告,因此我不想关闭该检查,我也不想在每次调用此方法时都检查返回的值是否不同于null,这是因为我总是将此方法与始终在映射中的一堆键一起使用,因此由于程序逻辑,该方法是一定要返回一个@NonNull值。

我很想只用来注释它@NonNull,但谁知道有人可能用某处定义的键以外的名称来调用它,并实际上导致了NullPointerException。你会怎么做?一个断言听起来很诱人。还是您只是更改方法以引发RuntimException?还是AssertionError?

谢谢。

编辑:

这是实际的实现:

/**
 * Typesafe heterogeneous container pattern - implementation
 */
public class HandlersMap {

    private final Map<Class<? extends TableHandler>, TableHandler> handlers;

    public HandlersMap() {
        handlers = new HashMap<Class<? extends TableHandler>, TableHandler>();
        putHandler(RolesTableHandler.class, new RolesTableHandler());
        putHandler(UsersTableHandler.class, new UsersTableHandler());
        putHandler(DevicesTableHandler.class, new DevicesTableHandler());
    }

    private <T extends TableHandler> void putHandler(@NonNull final Class<T> type, @NonNull final T instance) { …
Run Code Online (Sandbox Code Playgroud)

java annotations notnull

1
推荐指数
1
解决办法
4735
查看次数

@NotNull 对参数的 Getter 和 Setter 的影响

相信并使用我应该使用哪个 @NotNull Java 注释?,我有一个类,其中某些字段标记为@NotNull[ package javax.validation.constraints] 以传递给客户端。该类还为这些字段实现了默认的 getter 和 setter。下面的示例类 -

public class MyClass 
{
    public MyClass() {
    }

    @NotNull
    private String name;

    private Boolean bool;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Boolean isBool() {
        return bool;
    }

    public void setBool(Boolean bool) {
        this.bool = bool;
    }
}
Run Code Online (Sandbox Code Playgroud)

我对业务逻辑中 getter 的用法感到有些困惑 -

if(new MyClass().getName() !=null) {
    //do something
}
Run Code Online (Sandbox Code Playgroud)

这个null检查是不是多余的,(如果不是)想知道 …

java getter-setter notnull

1
推荐指数
1
解决办法
3576
查看次数

"尝试更新SQL中的列时,无法将值插入列"

我试图使用下面的查询更新非空列的值

update Bom set CountryCode=
case
when CurrencyId='CHF' then 'CH' 
when CurrencyId='NZD' then 'NZ'
when CurrencyId='KRW' then 'KR'
when CurrencyId='HKD' then 'HK'
when CurrencyId='MXN' then 'MX' 
when CurrencyId='USDe' then 'DE'
when CurrencyId='JPY' then 'JP'
when CurrencyId='EUR' then 'DE'
when CurrencyId='DKK' then 'DK' 
when CurrencyId='GBP' then 'GB'
when CurrencyId='AUD' then 'AU'
when CurrencyId='RMB' then 'CN'
when CurrencyId='USDu' then 'US' 
when CurrencyId='NOK' then 'NO'
when CurrencyId='CAD' then 'CA'
when CurrencyId='USDm' then 'MX'
when CurrencyId='SEK' then 'SE'
when CurrencyId='SGD' then 'SG'
when CurrencyId='TWD' …
Run Code Online (Sandbox Code Playgroud)

sql notnull

0
推荐指数
1
解决办法
3721
查看次数

强制<T>是否会与Guava的Optional <T>一起成为有用的补充?

我正在查看Guava的Optional及其理由,我想知道在表示不能为null的值时,类似的类是否快速失败会有所帮助.我找不到任何关于这个想法的讨论,所以我想我会问这里.

我的第一次尝试将尝试保持Guava使用的风格,一个Mandatory<T>暴露静态工厂of(T t).NullPointerException如果使用null参数调用,则抛出此方法.

我特别感兴趣的是在空处理方面确定接口方法的语义.我认为是否接受空参数是一个应该在接口中可以指定的设计决策,以便可以相应地设计客户端代码并避免重复前置条件检查逻辑.因此,使用此类的接口可能具有类似的方法

fire(Mandatory<Employee> employee);

并且客户可以打电话

fire(Mandatory.of(unfortunateEmployee));

我怀疑强制类型很容易找到使用方面等在调用之前挂钩进一步检查,如果这样的标记方法参数不应该为空是绝对重要的.

我也考虑过基于注释的方法,fire(@NotNull Employee employee)但是我看到的实现需要额外的验证器连线.

所以,问题......这个想法在任何地方都存在吗?如果没有,我是否错过了一些明显破坏它的东西?或者更好的想法来实现这一目标?

java null interface guava notnull

0
推荐指数
1
解决办法
129
查看次数

如何获取表中的所有非空列

我需要在表中查找所有非空列.例如,我的表格如下

在此输入图像描述

比方说,__CODE__,__CODE____CODE__具有非空约束和__CODE__,__CODE__并且__CODE__是可空类型的.在__CODE__该列表中是否有任何查询非空类型的列名__CODE__,即我需要获取列名,__CODE____CODE__.

期望的输出

Column1
Column2
Column3
Run Code Online (Sandbox Code Playgroud)

我知道应该有一个简单的方法来实现这一点,但我是新手__CODE__.任何帮助将受到高度赞赏.

oracle constraints oracle10g oracle11g notnull

0
推荐指数
1
解决办法
4849
查看次数

Elastic Search查询以检查2个字段中的空值

什么是弹性搜索查询,用于搜索“ field1为null field2为null”的文档。

我正在使用elasticSearch 5.3 ...

notnull elasticsearch

0
推荐指数
1
解决办法
4436
查看次数

Java:验证字符串

所以我正在研究java中的一个项目,我只是一个简单的问题.

我有一个接收字符串的方法,我想剥离空格并检查是不是空的.到目前为止,我有以下的地方,但它似乎没有正常工作.

public static Boolean isValid(String s) {
    s.replace(" ", "");
    if (s == ""){
        return false;
    }
    else {
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激:) Ta

java string methods notnull

-1
推荐指数
1
解决办法
83
查看次数