相关疑难解决方法(0)

Oracle中的null vs空字符串

可能重复:
为什么Oracle 9i将空字符串视为NULL?

我在Oracle 10g中的表命名TEMP_TABLE,只有两列- iddescription只为示范的缘故.

该列id是序列生成的类型主键,NUMBER(35, 0) not nullDESCRIPTION是其类型VARCHAR2(4000) not null.

在这种情况下,基本的表结构如下所示.

+--------------+-----------+---------------+
|Name          | Null?     | Type          |
+--------------+-----------+---------------+
|ID            | NOT NULL  | NUMBER(35)    |
|DESCRIPTION   | NOT NULL  | VARCHAR2(4000)|
+--------------+-----------+---------------+
Run Code Online (Sandbox Code Playgroud)

创建此表后,我尝试INSERT交替插入以下命令.

INSERT INTO temp_table (id, description) VALUES (1, null); ->unsuccessful
INSERT INTO temp_table (id, description) VALUES (2, '');   ->unsuccessful
Run Code Online (Sandbox Code Playgroud)

它们都不成功,因为not nullDESCRIPTION列上强制执行约束.

在这两种情况下,Oracle都抱怨道

ORA-01400: cannot insert NULL …
Run Code Online (Sandbox Code Playgroud)

string oracle null oracle10g

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

在 AspNet Core 中解析空查询参数

如何在 AspNet Core 中处理空查询参数?

假设我们有一个查询 ?key1=foo1&key1=foo2&key2=&key3=null

在解析它时,我希望在解析这个 URL 时有某种 Dictionary> 结果,例如:

  • key1 : ["foo1", "foo2"] 这应该是同一个键下的多个值
  • key2 : [""] 这应该是一个空字符串
  • key3 : ["null"] 这应该是一个字符串,据我所知,URL 中的 null 只是一个文字

我的问题是:我应该如何处理空查询参数?

注意:我不能简单地定义查询参数并假设不存在的查询参数为空。但我认为如果需要,应该将 null 视为显式查询参数中的有效值。

根据这个线程:How to send NULL in HTTP query string? 标准是传递编码的空值:见https://www.w3schools.com/tags/ref_urlencode.asp

所以如果我想传递一个空值,我应该这样做: ?key1=foo1&key1=foo2&key2=&key3=%00

问题是我不知道如何解码它以便将 %00 解析为空值。

我尝试了以下方法:

public Dictionary<string, List<string>> CreateFromQuery(string query)
{
    if (query == null)
    {
        return new Dictionary<string, List<string>>();
    }

    var queryDictionary = Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(query);

    var result = queryDictionary.ToDictionary(kv => kv.Key, kv => kv.Value.ToList());
    return result;
} …
Run Code Online (Sandbox Code Playgroud)

c# url http query-parameters asp.net-core

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

标签 统计

asp.net-core ×1

c# ×1

http ×1

null ×1

oracle ×1

oracle10g ×1

query-parameters ×1

string ×1

url ×1