パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

「IT業界クソ現場オブザイヤー」がすごい」記事へのコメント

  • 昭和と平成 (スコア:5, おもしろおかしい)

    次の年号どうすんねやろと思ったらこんなんあった。

    naronA @naron__A 2017-12-03 14:00:02
    上司「ここは処理が3つに別れるのでBooleanにtrue/false/nullを代入しまして」
    俺「え?Booleanですよね?」
    上司「うん」
    俺「🤔」
    #IT業界クソ現場オブザイヤー2017

    • by Anonymous Coward

      OracleのPL/SQLのBOOLEAN型は標準で三値持てるらしいですね。 > Booleanにtrue/false/null

      他の言語だと、C#ならbool?、C++ならBoost.Triboolあたり。

      • by Anonymous Coward

        SQLの3値論理はTrue/False/Nullではなく、True/False/Unknownですよ。
        基本的なことで、意味も扱いも全く違いますから、ちゃんと勉強しましょう。

        • by Anonymous Coward on 2017年12月06日 15時52分 (#3324423)

          SQL99での定義はTrue/False/Unknownですが、Oracleではunknownはサポートされていないのでは?(正確には評価結果のUnknownがありますが)
          元コメはOracleにしか言及していないのでいきなりSQL99の話されたら困惑しますよ。

          親コメント
          • by Anonymous Coward
            OralceのSQLはBoolean型をサポートしない
            (そもそもBoolean型をSQL99の通りに実装しているRDBMSは存在しない)
            Boolean型をサポートしないSQLを拡張したPL/SQLはもやはSQLじゃないのでSQL99に拘束される謂れはないが
            それはそうとしてPL/SQLではBoolean型変数を作れるが、その変数にはNULLを代入できない
            なぜならBoolean型が必要なところでNULLを評価するとunknownになるから、 NULLを代入したつもりでも実際の値はunknownになっているはず
            • Re:昭和と平成 (スコア:2, 参考になる)

              by Anonymous Coward on 2017年12月06日 18時48分 (#3324552)

              PL/SQL言語リファレンスより [oracle.com]
              |BOOLEAN変数に代入できる値はBOOLEAN式のみです。
              (中略)
              |SQLにはBOOLEANに相当するデータ型がないため、次の操作は実行できません。
              | データベース表の列にBOOLEAN値を割り当てる操作
              (以下略)
              ついでに、上記のBOOLEAN値 [oracle.com]は
              |BOOLEAN式とは、BOOLEAN値(—TRUE、FALSEまたはNULL)を戻す式のことです。

              とのことなので、12c(12.1)で試してみたところ変数にはNULLは代入できるしis nullによる評価も可能でしたが、テーブルへのINSERTはできませんでした。

              親コメント
              • by Anonymous Coward

                …ああ、この流れ…些細ではあるが技術の風が吹くこの流れ…これこそ古き良きスラドの風よ…!!

                #すぐ政治だのネトウヨだの言いだす連中はYahooにでも行けばいいのに…。

UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア

処理中...