• (disco)

    Hahahahaha! Already seen it, sucker! :stuck_out_tongue:

    I saw it on /latest before it got unlisted

  • (disco) in reply to RaceProUK

    Why no inb4 unlist (that should be a badge, BTW)

  • (disco) in reply to sloosecannon

    Because you're then asking for more Frist Posts? Doesn't sound like a good thing.

  • (disco) in reply to sloosecannon

    Because there's no real way of telling, aside from my own word, whether I saw it before it was unlisted, or I set the category to 'Watching'

  • (disco) in reply to sloosecannon

    You can't blame her not watching the category. Some people don't game the system like that and rely on quick-acting reflexes!

    Edit: Frickin' :hanzo:

  • (disco) in reply to RaceProUK

    No I mean post inb4 the unlist.

    I'm sure it's possible, I almost did it on another article

  • (disco) in reply to sloosecannon

    Ah, I was just slow :smile:

  • (disco) in reply to RaceProUK
    RaceProUK:
    Ah, I was just slow :smile:

    now, now dear. it's not you that was slow. it was discurse that was slow.

    never blame yourself for the failings of others.

  • (disco)

    Why not just use DECODE

    SELECT DECODE(NULL, NULL, 1, 0) FROM DUAL;
    

    returns 1.

  • (disco)

    @Remy, typo:

    Oracle theoretically lets you program theing packaged apps

    I'm not entirely sure what that's supposed to say (the something using?), but as-is it's gibberish.

  • (disco) in reply to HardwareGeek

    For some reason, the authors 'round here never seem to fix mistakes pointed out in the comments.

  • (disco) in reply to rc4

    The lazy moderators who won't do their jobs are a bad influence.

    They do seem to fix broken image links though (by hot-linking to huge 50MB WikiCommons pictures that aren't actually relevant to the article).

  • (disco) in reply to HardwareGeek

    @boomzilla ghostwrites every article?! :open_mouth:

  • (disco) in reply to HardwareGeek
    HardwareGeek:
    The lazy moderators who won't do their jobs are a bad influence.

    Woah! There is no call for that! We don't get paid for our lax work ethic, but the writers get paid for their articles. There is no reason for them to be following our lead!

  • (disco)

    By the way, I notice the distinct lack of SJW's or professional offendees on behalf of 3rd or 4th parties complaining about the title of the article.

    Might we get some when it goes officially public? :imp:

  • (disco) in reply to Tsaukpaetra
    Tsaukpaetra:
    rely on quick-acting reflexes!

    Edit: Frickin' :hanzo:

    Too slow, grasshopper.

  • (disco)

    8 posts were split to a new topic: N-n-n-n-names

  • (disco)

    Is it me or does the code still fail to consider two NULLs as the same?

  • (disco)

    TRWTF is not the lack of GUI tools but the tool who implemented such a dysfunctional way of change controlling a database. It's just the wrong way to do it, and the fact that 'lipstick on a pig' PL/SQL is needed to try and make sense of it comes as no surprise. If you're making changes to a db, you absolutely must know what will and will not change. Having to write software to spot a change means you've lost control (or never had it in the first place)

    I sigh, and file it under "Why developers should never be allowed near a database" along with all the other similar howlers I've seen, so many, many times before. For the sake of completeness, that's stored next to the bullets which I keep for executing incompetent managers who allow this sort of thing to happen in the first place.

  • (disco) in reply to Khudzlin

    Yeah, looks like that to me too. And to me that's about the length of the WTF here, or maybe I'm just too used to making NULL checks differently in SQL and other languages.

    Unless The Real WTF (tm) was the in-house GUI and not the code.

  • (disco)

    Ch-Ch-Ch-changes, and totally off topic.

    RIP David Bowie.

  • (disco) in reply to John_Imrie
    John_Imrie:
    RIP David Bowie.

    Oh my... Cause spamming YT comments under fucking every Bowie song is not enough for you people, right?

  • (disco) in reply to kt_

    Or you could show some respect for the passing of a musical legend.

  • (disco) in reply to RaceProUK
    RaceProUK:
    Or you could show some respect for the passing of a musical legend.

    It's not about respect. It's about: no one cares that you miss him, stop spamming all forums, FFS!

    I swear, I went to YT 'cause I wanted to check if Remy meant that the title is a Bowie reference. I've listened to a few songs and I really can't stand any more of "he's probably having great time right now doing the most awesome gig with Freddy" and "And Kurt, too", etc.

    FFS, guy's dead, go listen to his songs, but please stop spamming forums...

  • (disco) in reply to kt_

    Very well. We'll all stop giving a crap about a dead man who gave the world a huge amount of beauty, just to spare your feelings.

  • (disco) in reply to RaceProUK
    RaceProUK:
    Very well. We'll all stop giving a crap about a dead man who gave the world a huge amount of beauty, just to spare your feelings.

    At last! Thank you, please do that.

  • (disco) in reply to PleegWat

    That or coalesce(val1, 'Something that falls completely outside the possible domain of normal values like this string') = coalesce(val2, 'Something that falls completely outside the possible domain of normal values like this string')

  • (disco) in reply to kt_

    *ships you a new sarcasm detector*

  • (disco) in reply to kt_
    kt_:
    stop spamming all forums

    :rolleyes:

    YMBNH

  • (disco) in reply to Khudzlin

    That's what I was thinking...

  • (disco) in reply to HardwareGeek

    With regards to the comment itself - API documentation? Bloody luxury. There's a large ERP package uhm let's anonomize it as Initrode Funky System. When we asked for API documentation so that we could write some custom web front ends to insulate our users from its abysmal uhm... Initrode Funky System Exploder application we were told three things in this order:

    • Nobody needs to do this.
    • We'd be happy to do this for you as a for pay project.
    • You can just dive the sources in the database, API documentation is not needed and does not even exist internally. Fortunately (for me) I'm no longer involved in supporting that maze of twisty passages.
  • (disco)

    On topic.

    Meh. Given that there is a need for this far-from-optimal task to be done, and given that some sort of effort (despite being laughably inept) has thereby been made to make the developers' tasks slightly easier (as for me, I grew up with Toad and got on well with it), it's there, and it's in place and can be forgotten about. The few times it is needed more than makes up for its unwieldiness.

    Although I would continue to agitate for Toad.

  • (disco) in reply to DotNot
    DotNot:
    Unless The Real WTF (tm) was the in-house GUI and not the code.
    I assum both are.

    But really, in 17 years of Oracle development, I have never ever encountered - or even heard of - an in-house database development tool. Generally toad, plsqldeveloper or sqldeveloper are used. Or even a text editor with sql*plus.

    So that was the major WTF. The null handling is just a bonus WTF, that can be fixed by replacing the whole mess with a few lines of code.

  • (disco) in reply to RFoxmich
    RFoxmich:
    With regards to the comment itself - API documentation? Bloody luxury. There's a large ERP package uhm let's anonomize it as Initrode Funky System. When we asked for API documentation so that we could write some custom web front ends to insulate our users from its abysmal uhm... Initrode Funky System Exploder application we were told three things in this order:

    Nobody needs to do this. We'd be happy to do this for you as a for pay project. You can just dive the sources in the database, API documentation is not needed and does not even exist internally.Fortunately (for me) I'm no longer involved in supporting that maze of twisty passages.

    Hah!

    I was on contract to a high-profile client on a different continent, where I was the company-facing person. They were insisting on not using our software in the way we designed it, they wanted to continue to build their product in the same way that they had always done, despite the fact that the tool we provided for them did all the stuff which they were (in their NIHness) unnecessarily rewriting. So the time came when they demanded the API documentation for the (internal to the product) java classes -- or they were pulling the plug. So, sure enough, we got the javadocs. Fortunately I took the opportunity to check them over before delivering them. And the javadocs were full of stuff like: "Suppose we ought to think about documenting this sometime", and "god knows what this does, it was written by that clown [whoever]" and stuff like that.

    I don't know much about the political details of what happened after that, because the plug was indeed pulled and I was indeed returned to my place of residence

  • (disco) in reply to accalia
    accalia:
    YMBNH

    Well, I am actually. :wink:

  • (disco) in reply to RaceProUK
    RaceProUK:
    *ships you a new sarcasm detector*

    Hey, the one I have still works great! Sure, you can here something rattling around inside and the screen is almost impossible to read, but hey, it still works!

  • (disco)

    The real WTF is creating a boolean function. Now you have a nice way of comparing two values but you can't use it in a SQL statement.

  • (disco)

    Actually, in the Oracle world NULL != NULL evaluates to FALSE; the real problem is that so does 'a' != NULL.

  • (disco) in reply to Khudzlin

    The code isn't trying to consider whether the two values are the same, it is trying to consider whether the two values are different. The article mentions the NULL != NULL case but this is a red herring because it never evaluates to TRUE. The actual case is the NULL != NOT NULL case which the code would like to be TRUE but isn't, thus the special cases.

  • (disco) in reply to kt_
    kt_:
    here

    !!!

    twitch

  • (disco) in reply to sloosecannon
    sloosecannon:
    kt_:
    here

    !!!

    twitch

    Hey! That's exactly what I meant!

    And get if my lawn, while we're at it!

  • (disco) in reply to kt_
    kt_:
    Hey! That's exactly what I meant!

    And get if my lawn, while we're at it!

    Your having a laugh.

  • (disco) in reply to Quite
    Quite:
    Your having a laugh

    Almost exclusively. Unless it's about the new Star Wars movie.


    Filed under: Never underestimate the power of Jar Jar Abrams

  • (disco) in reply to urkerab

    Okay, just to clarify, are the comparisons:

    null == null false?

    null != null also false?

  • (disco) in reply to anotherusername

    http://docs.oracle.com/database/121/SQLRF/sql_elements005.htm#SQLRF30037

  • (disco) in reply to aliceif

    Ah! Undefined behavior! How delightful.

    Or is unknown Oracle's boolean FILE_NOT_FOUND?

  • (disco) in reply to anotherusername
    anotherusername:
    Undefined behavior!

    No?

  • (disco) in reply to aliceif

    Table 2-20 seems to indicate so, unless Oracle has tri-state booleans: TRUE, FALSE, and UNKNOWN.

  • (disco) in reply to anotherusername

    ##Nulls in Conditions A condition that evaluates to UNKNOWN acts almost like FALSE. For example, a SELECT statement with a condition in the WHERE clause that evaluates to UNKNOWN returns no rows. However, a condition evaluating to UNKNOWN differs from FALSE in that further operations on an UNKNOWN condition evaluation will evaluate to UNKNOWN. Thus, NOT FALSE evaluates to TRUE, but NOT UNKNOWN evaluates to UNKNOWN.

  • (disco) in reply to geoff

    My PL/SQL method:

    -- unchanged
    (NVL(Old.Value, 0) = NVL(New.Value, 0) AND NVL(Old.Value, '') = NVL(New.Value, ''));
    
    -- changed
    NOT (NVL(Old.Value, 0) = NVL(New.Value, 0) AND NVL(Old.Value, '') = NVL(New.Value, ''));
    

    Compare the NVL of the old and new values with defaults of different types. Can only be true if both values are equal or both values are null.

    FFS, I finally subscribe to the new forums for this?

Leave a comment on “Ch-ch-ch-changes”

Log In or post as a guest

Replying to comment #:

« Return to Article