sql >> Databáze >  >> RDS >> Mysql

Neznámý sloupec „x“ v „klauzuli where“

I když jsem poukázal na to, jaká by mohla být chyba ve vašem kódu SQL, rád bych o tom uvedl více podrobností.

That Stored Procedure Runing at MySql WithOut any problems but when send Delphi parameters to sp , i get that Error !! Ale mýlíte se.

Existuje a known bug při vytváření vaší procedury. Z důvodu byla aktivována výjimka za běhu .
Semantics of Stored procedure code is not checked at CREATE time. At runtime, undeclared variables are detected, and an error message is generated for each reference to an undeclared variable. However, SP's seem to believe any reference denotes a column, even though the syntactic context excludes that. This leads to a very confusing error message in case the procedure.

Standardní příklad testu je uveden níže:

mysql> drop procedure proc_test;
Query OK, 0 rows affected (0.00 sec)

mysql> delimiter //
mysql> CREATE PROCEDURE proc_test()
    -> BEGIN
    ->     select current_day;
    -> END
    -> //
Query OK, 0 rows affected (0.00 sec)

Zde můžete pochopit, že kompilace procedur byla ignorována v jaký current day je.

mysql> delimiter ;
mysql> call proc_test();
ERROR 1054 (42S22): Unknown column 'current_day' in 'field list'
mysql>

S tím byste měli pochopit, že That Stored Procedure Runing at MySql WithOut any problems ... není správné.

Rychlá oprava vašeho dotazu problém vyřeší. Zmínil jste, že I defined input parameters with _ prefix. I don't know waht i must do ! . Pokud je to pravda, pak
změňte

SELECT * FROM bimar WHERE `_code_ehda_konandeh` = `code_ehda_konandeh`

do

SELECT * FROM bimar WHERE `code_ehda_konandeh` = _code_ehda_konandeh

a mělo by to fungovat. Zde jsem předpokládal code_ehda_konandeh je sloupec tabulky bimar taky.



  1. PHP soubor nemůže zadat část kódu

  2. Automaticky zrušit tabulky a indexy starší než 90 dní

  3. Jak přeskočit řádek při importu špatného výpisu MySQL

  4. EM12c nyní umožňuje DB12c pro úložiště