Przechodziłem przez stary kod napisany w przeszłości przez innego programistę z mojej organizacji. Próbując poprawić ten kod, odkryłem, że używane przez niego zapytanie miało bardzo poważny problem.Zagadka działającego, zepsutego zapytania
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();
Problemem jest to, że kolumny a.RRRAREQ_TRST_DESC
nie istnieje. Fakt, że bardzo szybko się uczysz, gdy uruchamiasz go w Oracle SQL Developer.
Dziwna rzecz?
Ten kod działa.
Gridview wiąże pomyślnie. (Nie próbuje wiązać się z tym polem.) I był produkowany od lat.
Moje pytanie brzmi: dlaczego? Nigdy nie widziałem złego zapytania. Nigdy nie widziałem, żeby Oracle pozwalał na to, lub dostawca danych się z nim zhakował.
Czy ktoś ma pojęcie, co się tutaj dzieje?
dziwne ... nie RRRAREQ_TRST_DESC kiedykolwiek istnieć? –
Te nazwy kolumn sprawiają, że mój mózg boli –
czy to powoduje wyjątek, który zostaje obsłużony, a coś ** innego ** wykonuje poprawne zapytanie i wiąże je? czy jesteś pozytywnie wykorzystany? nie jest to prawdziwy kod źródłowy, do którego nie ma odniesienia? –