Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kesalahan Prosedur Tersimpan MySQL Karakter tak terduga:

Ini adalah masalah terkait sintaks MySQL yang sangat mengganggu:Ada TAB di suatu tempat dalam prosedur Anda yang mengarah ke masalah penguraian ini:Gunakan spasi hanya untuk lekukan atau perataan apa pun.

Versi saya (MariaDB 10.x) juga tidak menyukai permulaan prosedur Anda dengan DECLARE memesan, jadi saya juga memperbarui itu. Lihat apakah itu masih sesuai dengan tujuan Anda di lokasi tersebut.

Prosedur yang disesuaikan yang dibuat database saya tanpa kesalahan sintaks:

DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `get_gauge_values` (in maxdate timestamp, in tagid int)

BEGIN
declare finished boolean;
declare line_timestamp timestamp;
declare line_tagid int;
declare line_name varchar(50);
declare line_value varchar(50);
DECLARE cid CURSOR FOR 
SELECT MAX(hd.timestamp), hd.tag_id
FROM dashboard_lines dl
JOIN historical_data hd ON hd.tag_id = dl.gauge_tag_id
WHERE (hd.timestamp is null OR hd.timestamp <= maxdate)
AND (dl.gauge_tag_id is null OR dl.gauge_tag_id = tagid);       
declare continue handler for not found set finished=true;
set finished=false;
DROP TABLE IF EXISTS GAUGE_VALUES_TEMP;
CREATE TABLE GAUGE_VALUES_TEMP (
LINE_NAME varchar(255),
LINE_VALUE varchar(50)
);  
open cid;
start_loop: loop            
fetch cid into line_timestamp, line_tagid;    
if finished <> false then 
leave start_loop; 
else    
insert into gauge_values_temp (line_name, line_value) 
select ol.name, hd.value
from dashboard_lines dl
join operation_lines ol on ol.line_id = dl.line_id
join historical_data hd on hd.tag_id = dl.gauge_tag_id
where dl.gauge_tag_id = line_tagid;                        
end if;                
end loop;
close cid;
select * from gauge_values_temp;
END
$$



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengoptimalkan pilihan mysql sederhana pada tabel besar (75 juta+ baris)

  2. jQuery memperbarui div saat tabel diperbarui

  3. Bagaimana menemukan nomor seri tanpa celah di mysql?

  4. Data Grup Mysql Berdasarkan Waktu

  5. Bagaimana cara mencari data JSON di MySQL?