Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL सिंटैक्स त्रुटि

आपका कोड ब्लॉक घोषित चर के दायरे को परिभाषित नहीं करता है। यदि किसी प्रक्रिया के भीतर, वे BEGIN . के बीच में होने चाहिए और END . उनके बिना, कथन DECLARE varLocalityName VARCHAR(50); निष्पादित करने के लिए एक अमान्य कथन बन जाता है। यह कथन नीचे दिखाए गए कथनों के समतुल्य है:

mysql> select current_date();
+----------------+
| current_date() |
+----------------+
| 2012-10-22     |
+----------------+
1 row in set (0.00 sec)

mysql> declare varLocalityName varchar(50);
ERROR 1064 (42000): You have an error in your SQL syntax;
 check the manual that corresponds to your MySQL server version 
 for the right syntax to use near 'declare varLocalityName varchar(50)' at line 1
mysql>

या तो आपको घोषित करना चाहिए कीवर्ड के बिना सत्र चर DECLARE या स्कोप्ड वेरिएबल्स का उपयोग करने के लिए संग्रहीत कार्यविधि के लिए परिभाषित सिंटैक्स का पालन करें।

उदाहरण 1 :सत्र चर का उपयोग करना:

mysql> set @x = null;
Query OK, 0 rows affected (0.00 sec)
mysql> select @x;
+------+
| @x   |
+------+
| NULL |
+------+
1 row in set (0.00 sec)

mysql> delimiter $$
mysql> select current_date() into @x;
    -> $$
Query OK, 1 row affected (0.02 sec)

mysql> select @x;
    -> $$
+------------+
| @x         |
+------------+
| 2012-10-22 |
+------------+
1 row in set (0.00 sec)

ध्यान दें कि आप एक प्रक्रिया के भीतर सत्र चर सेट/परिभाषित कर सकते हैं लेकिन DECLARE . नहीं

उदाहरण 2 :प्रक्रिया के दायरे वाले चर का उपयोग करना:

mysql>
mysql> delimiter $$
mysql> create procedure some_x()
    ->    begin
    ->      declare varLocalityName varchar(50);
    ->
    ->      set @sessionDate = null;
    ->      select @sessionDate;
    ->      set @sessionDate = current_date();
    ->      select @sessionDate;
    ->
    ->      select varLocalityName;
    ->    end;
    -> $$
Query OK, 0 rows affected (0.00 sec)

mysql> delimiter ;
mysql>
mysql> call some_x();
+--------------+
| @sessionDate |
+--------------+
| NULL         |
+--------------+
1 row in set (0.00 sec)

+--------------+
| @sessionDate |
+--------------+
| 2012-10-22   |
+--------------+
1 row in set (0.00 sec)

+-----------------+
| varLocalityName |
+-----------------+
| NULL            |
+-----------------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

mysql>
mysql> select @sessionDate;
+--------------+
| @sessionDate |
+--------------+
| 2012-10-22   |
+--------------+
1 row in set (0.00 sec)

mysql> select varLocalityName;
ERROR 1054 (42S22): Unknown column 'varLocalityName' in 'field list'
mysql>

चर घोषणा और कार्यक्षेत्र भी देखें। .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. योग के आधार पर MySQL में पर्सेंटाइल की गणना करें

  2. एक्सेल फ़ाइल को MySQL वर्कबेंच में कैसे आयात करें?

  3. क्या प्रदर्शन को अनुकूलित करने के लिए SQL तालिका में क्वेरी करने योग्य फ़ील्ड के प्रत्येक संयोजन पर एक अनुक्रमणिका होना आवश्यक है?

  4. MySQL एकाधिक आईडी लुकअप

  5. MySQL संबंधित लेख क्वेरी में सुधार