問題タブ [nvl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
18680 参照

java - NVL 関数が「NVL」と呼ばれるのはなぜですか?

nvl()コード内に関数が表示されることがあります。Java の場合は、次のようになります。

この関数の機能は理解できますが、なぜ と呼ばれているのかわかりませんnvl。なぜcheckNotNullですかreturnNotNull?NVL は何の略ですか?

N ull V alue Lかな…?

0 投票する
2 に答える
1945 参照

oracle - 空の行の NVL チェックを使用して null を置き換える Oracle

整数を取得するクエリを実行していますが、null をチェックしたいと考えています。null の場合、クエリで 0 を返したいのですが、どうすればよいですか? 以下で試してみましたが、うまくいきません

A_COUNT が null の場合、クエリで 0 を返します。上記の場合、VEH_YEAR 列に値 2003 がありません。VEH_YEAR 列に値 2003 があり、A_COUNT が null の場合、クエリは機能します。

0 投票する
0 に答える
97 参照

sql - プロンプトでレコードを更新する方法 (null の場合は更新しない)

何かを入力した場合にレコードを更新するように求めるプロンプトが表示される必要があるスクリプトを作成しています。null のままにしておくと、更新したくありません。とにかく、CASEまたはNVLと関係があると思います。

最初の部分は番号を要求します。番号を入力すると、STR_NUM に関する情報が表示されます。次に、名前(STR_NAME)を変更するかどうかを尋ねる別のプロンプト(助けが必要な部分)が表示されるはずです。プロンプトを空白のままにすると何も変わりませんが、何かを入力するとSTR_NAMEが変更されるはずです。

ただし、プロンプトがまったく表示されません。どういうわけか、選択ステートメントと更新ステートメントを一緒に組み込むことになっていますか?

編集: わかりました、私はただいじっていました。少なくともプロンプトが表示されたので、もっと近いと思いますが、更新部分の式が欠落しているというエラーが表示されます.v_str_nameに保存されるため、そこに電話をかければ可能かもしれませんまだ新しいです)。

編集2:わかりました。思ったより簡単です。

0 投票する
2 に答える
29430 参照

sql - Oracle のデコード関数を where 句で使用する方法

フィルター条件がほとんどないクエリがあります。そのうちの 1 つは整数パラメーターとしてクエリに取得されます。このフィルターを使用したいのは、この整数が 0 より大きい場合のみです。NULL になることはないため、NVL は使用できません。このような場合、どのように使用すればよいDECODEですか?

私が得るパラメータ?は整数です

0 投票する
2 に答える
15469 参照

oracle - Oracle NVL 関数で 2 番目のパラメーターを日時として使用できない

上記のクエリを実行しているときに、次のエラーが発生します

正常に動作する代わりに文字列または数値を取得したときのように見えますtrunc(sysdate)

0 投票する
1 に答える
2138 参照

oracle - JPA 合体 / NVL、バインド パラメータ、およびデータベース インデックスの使用

NVL(some_column, ' ') = ' '次のように、null 許容列で関数ベースのインデックスを使用する場合、Oracle には述語を使用する一般的な方法があります。

JPAで構築された述語:

休止状態の実装によって生成された結果の SQL 述語 (Eclipse の実装によっても):

最初のバインド パラメータを使用するため、オラクルは関数ベースのインデックスを使用できません。その結果、Oracle は FULL SCAN を使用します。

コード ( ) によると、LiteralExpression.render(...)JPA 実装は、すべての文字列リテラル (非数値リテラル) のバインド パラメーターを作成します。このアプローチを使用して、SQLインジェクションの可能性を回避していると思います...

数値列の同様のケースは正常に機能します: nvl(sometable0_.some_column, -1)=-1(2番目は、新しいパラメータ値ごとにOracleにハード解析を強制しない-1ように置き換えることができます)。criteriaBuilder.parameter(...)

だから私の質問:インジェクションが不可能であると確信している場合に、JPAにバインドパラメータを使用させないようにする法的方法はありますか?

ps。次のように、式の独自の実装 (基準ビルダーをバイパスして構築) を使用できます。

しかし、私はこれが正しいとは考えていません。

0 投票する
5 に答える
5401 参照

java - Oracle nvl は数値フィールドに null を挿入する必要があります

これは、実行中の削除スクリプトのフォールバック スクリプトです。これは、挿入ステートメントを生成するために使用しているクエリです。

これはそのクエリの結果です:

これを実行すると、ORA-00936: 空の info_type フィールドと scriptid フィールドが原因で式が見つかりません。どちらも数値であり、NULL 値を許容できます。生成されたクエリが必要です

info_type と scriptid が null の場合。nvl(info_type,'null') を実行しようとしましたが、ORA-01722: 数値フィールドに文字列を入力しようとしたための無効な数値が発生しました。info_typeまたはscriptidがnullの場合、これを操作して、ではなくnullとして返すにはどうすればよいですか

0 投票する
2 に答える
5425 参照

sql - DECODEによるOracle SQLの比較

取得したいcommission値よりも大きい場合は、オラクルで何かを取得しようとしますが、そうでない場合は. また、取得したい場合。それが であることは知っていますが、構文に何か問題があります。手伝って頂けますか?0.2'GOOD''BAD'commission is null0NVL