Oracle中的”值和null以及java中的null区别

关于三者的区别,我做了一个实验,下面是JUnit的代码片断:

  1.  public void testInsert(){ 
  2.          Connection conn = null;
  3.          try{ 
  4.              conn = dbPool.getConnection();
  5.              assertNotNull(conn);
  6.              // sql script
  7.              String sql;
  8.              sql = "INSERT INTO TEST (Note, Name) Values ('''''', '')";
  9.              //sql = "INSERT INTO TEST (Note, Name) Values ('Oracle NULL', NULL)";
  10.              //sql = "INSERT INTO TEST (Note, Name) Values ('Java null', " + null + ")";
  11.              //sql = "INSERT INTO TEST (Note, Name) Values ('Java null string', '" + null + "')";
  12.              Statement stmt = conn.createStatement();
  13.              stmt.executeUpdate(sql);
  14.          } catch(Exception e){ 
  15.              fail(e.getMessage());
  16.          } finally{ 
  17.              if(conn != null) 
  18.                  try { conn.close();} catch (SQLException e) {} 
  19.          } 
  20.      }

依次执行上面代码中的四个sql语句,然后打开SQL*Plus,执行查询

  1.  select id from test where name is null;

结果:

Note Name
--------------------------------------------------------------------------------
''
Oracle NULL
Java null

执行

  1. select id from test where name is not null;

结果:

Note Name
--------------------------------------------------------------------------------
Java null string null

发表评论

电子邮件地址不会被公开。 必填项已用*标注