Ich stoße auf ein Problem beim Versuch, eine gespeicherte Prozedur auszuführen. Ich kann diese Abfrage ausführen:MySql gespeicherte Prozedur - Unbekannte Spalte in Feldliste
select
bit_count(cast(conv(substr('00d803fc07fc1ff807f8027f203f607b01fe03ff01fc03b8077f07780fb94039', 1, 16), 16, 10) as unsigned)^cast(conv(substr('00d803fc07fc1ff807f8027f203f607b00fe03ff01fe03b8077f07780fb94039', 1, 16), 16, 10) as unsigned)) +
bit_count(cast(conv(substr('00d803fc07fc1ff807f8027f203f607b01fe03ff01fc03b8077f07780fb94039', 17, 16), 16, 10) as unsigned)^cast(conv(substr('00d803fc07fc1ff807f8027f203f607b00fe03ff01fe03b8077f07780fb94039', 17, 16), 16, 10) as unsigned)) +
bit_count(cast(conv(substr('00d803fc07fc1ff807f8027f203f607b01fe03ff01fc03b8077f07780fb94039', 33, 16), 16, 10) as unsigned)^cast(conv(substr('00d803fc07fc1ff807f8027f203f607b00fe03ff01fe03b8077f07780fb94039', 33, 16), 16, 10) as unsigned)) +
bit_count(cast(conv(substr('00d803fc07fc1ff807f8027f203f607b01fe03ff01fc03b8077f07780fb94039', 49, 16), 16, 10) as unsigned)^cast(conv(substr('00d803fc07fc1ff807f8027f203f607b00fe03ff01fe03b8077f07780fb94039', 49, 16), 16, 10) as unsigned));
Aber wenn ich versuche, dies in eine gespeicherte Prozedur zu machen, schlägt es mit einem „Unknown column“ Fehler:
MariaDB [modscripts]> DELIMITER //
MariaDB [modscripts]> CREATE PROCEDURE Distance(IN fp1 CHAR(64), fp2 CHAR(64))
-> BEGIN
-> SELECT bit_count(cast(conv(substr(fp1, 1, 16), 16, 10) as unsigned)^cast(conv(substr(fp2, 1, 16), 16, 10) as unsigned)) +
-> bit_count(cast(conv(substr(fp1, 17, 16), 16, 10) as unsigned)^cast(conv(substr(fp2, 17, 16), 16, 10) as unsigned)) +
-> bit_count(cast(conv(substr(fp1, 33, 16), 16, 10) as unsigned)^cast(conv(substr(fp2, 33, 16), 16, 10) as unsigned)) +
-> bit_count(cast(conv(substr(fp1, 49, 16), 16, 10) as unsigned)^cast(conv(substr(fp2, 49, 16), 16, 10) as unsigned));
-> END //
Query OK, 0 rows affected (0.00 sec)
MariaDB [modscripts]> DELIMITER ;
MariaDB [modscripts]> call Distance(00d803fc07fc1ff807f8027f203f607b01fe03ff01fc03b8077f07780fb94039, 00d803fc07fc1ff807f8027f203f607b00fe03ff01fe03b8077f07780fb94039);
ERROR 1054 (42S22): Unknown column '00d803fc07fc1ff807f8027f203f607b01fe03ff01fc03b8077f07780fb94039' in 'field list'
Was mache ich falsch? Ich habe versucht, einfache Anführungszeichen um fp1 und fp2 ('fp1') in der select-Anweisung mit dem gleichen Ergebnis zu setzen.
Danke!