工作破解查询的谜语

cli*_*fin 14 c# sql oracle odbc gridview

我正在阅读我的组织中另一位开发人员多年前编写的一些旧代码.在尝试改进此代码时,我发现它使用的查询有一个非常糟糕的问题.

  OdbcDataAdapter financialAidDocsQuery =
            new OdbcDataAdapter(
                @"SELECT   a.RRRAREQ_TREQ_CODE, 
                           b.RTVTREQ_SHORT_DESC, 
                           a.RRRAREQ_TRST_DESC, 
                           RRRAREQ_STAT_DATE,
                           RRRAREQ_EST_DATE,
                           a.RRRAREQ_SAT_IND, 
                           a.RRRAREQ_SBGI_CODE, 
                           b.RTVTREQ_PERK_MPN_FLAG, 
                           b.RTVTREQ_PCKG_IND, 
                           a.RRRAREQ_MEMO_IND,
                           a.RRRAREQ_TRK_LTR_IND, 
                           a.RRRAREQ_DISB_IND, 
                           a.RRRAREQ_FUND_CODE, 
                           a.RRRAREQ_SYS_IND
                  FROM     FAISMGR.RRRAREQ a, FAISMGR.RTVTREQ b
                  WHERE    a.RRRAREQ_TREQ_CODE = b.RTVTREQ_CODE
                           and a.RRRAREQ_PIDM = :PIDM
                           AND a.RRRAREQ_AIDY_CODE = :AidYear ",
                this.bannerOracle);
        financialAidDocsQuery.SelectCommand.Parameters.Add(":PIDM", OdbcType.Int, 32).Value = this.pidm;
        financialAidDocsQuery.SelectCommand.Parameters.Add(":AidYear", OdbcType.Int, 32).Value = this.aidYear;
        DataTable financialAidDocsResults = new DataTable();
        financialAidDocsQuery.Fill(financialAidDocsResults);
        FADocsGridView.DataSource = financialAidDocsResults;
        FADocsGridView.DataBind();
Run Code Online (Sandbox Code Playgroud)

问题是该列a.RRRAREQ_TRST_DESC不存在.在Oracle SQL Developer中运行它时,您可以非常快速地学到这一事实.

奇怪的是?

这段代码有效.

gridview绑定成功.(它不会试图绑定到那个领域.)它已经在生产多年了.

所以,我的问题是......为什么?我从未见过错误的查询工作.我从未见过Oracle允许它或数据提供商破解它.

有谁知道这里发生了什么?

riw*_*alk 7

嗯......要检查一些事情:

  1. 这段代码实际上运行了吗?建议这可能看起来很愚蠢,但可能有一个更新的文件取代了这个.

  2. 您的代码是否会例外?(任何想要列出这样的列的人肯定能够压制那些讨厌的异常)

  3. 是否被第三方代码压制了?(不太可能,但有时第三方代码更喜欢使用恼人的错误代码而不是例外).

过去那些建议,我不确定.

编辑:

重新审视第二点,如果您在ASP.NET中工作,请检查是否存在压制异常的全局级异常处理程序.我在一个我工作的网站上遇到了这个问题,并在一天内发现了几十个例外.

  • 足够公平 - 祝你工作的查询更好运:) (4认同)