1

Oracle データベースに ' id 'というフィールド列が 1 つあります。'id ' の値は、NULL または 2 スペース (つまり " ") 文字列にすることができます。そのフィールド値は、サードパーティ アプリケーション (Serena Business Manager) によってマッピングされます。フィールドがnullか2つのスペースがあるかを伝えるJavaScriptを書くことになっています。

私はjavascriptステートメントでそうしようとしました:

if(id === '')
{
     doSomething()
}

これにより、データベース パスで null 値を持つ 'id' が許可されます。だからここに質問があります:データベース内のスペース(必ずしも2つではない)を含む文字列にjavascriptの「if」ステートメントを渡すにはどうすればよいですか?

4

3 に答える 3

2

Oracle では、NULL と空の文字列に違いはありません。空の文字列は NULL です。データベースでそれらを区別できないため、コードで 2 つを区別することはできません。

StackOverflow には別のスレッドがあり、ANSI 標準では 2 つの空の文字列を異なる方法で扱うように指定されているにもかかわらず、Oracle が空の文字列を NULL として扱う理由について説明しています。

実際には空の文字列ではなく、2 つのスペースを含む文字列を探しているように聞こえるので

if(id === '' || id == '  ')
{
     doSomething()
}
于 2012-10-09T22:48:59.743 に答える
1

文字列がnullまたは空のときに何かをしたい場合:

if (!id || id === '') {
    doSomething()
}

このjsfiddleを試してください

于 2012-10-09T22:45:49.157 に答える
0

を使用できますNVL(id, 'this was really null') AS id。これで、現在のJavaScriptが機能します。

クエリはどのように見えますか?どのようにしてJSに到達しますか?null貼り付けたコードに到達する前に、文字列または「空の」文字列に多くのことが起こった可能性があります...

PS:空またはnullの「id」データベース列はちょっと奇妙です... :)

于 2012-10-09T22:48:23.617 に答える