Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Unbekannte Spalte 'x' in 'where-Klausel'

Obwohl ich darauf hingewiesen habe, was der Fehler in Ihrem SQL-Code sein könnte, möchte ich mehr Details dazu geben.

That Stored Procedure Runing at MySql WithOut any problems but when send Delphi parameters to sp , i get that Error !! Aber du irrst dich.

Es gibt a known bug in Ihrer Prozedurerstellung. Aus diesem Grund wurde eine Laufzeitausnahme ausgelöst .
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.

Ein Standardtestbeispiel sieht wie folgt aus:

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)

Hier können Sie verstehen, dass die Prozedurkompilierung an welchem ​​current day ignoriert wurde ist.

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

Damit sollten Sie verstehen, dass That Stored Procedure Runing at MySql WithOut any problems ... das ist nicht richtig.

Eine schnelle Lösung Ihrer Anfrage wird das Problem lösen. Sie haben erwähnt, dass ich I defined input parameters with _ prefix. I don't know waht i must do ! . Wenn das stimmt, dann
ändern

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

zu

SELECT * FROM bimar WHERE `code_ehda_konandeh` = _code_ehda_konandeh

und es sollte funktionieren. Hier bin ich von code_ehda_konandeh ausgegangen ist eine Spalte der Tabelle bimar auch.