SQL Error:# 1064 when creating function in plsql using mysql -
यहाँ मेरी plsql कोड है
फंक्शन calculate_hours (सोम varchar बनाएँ (20), वर्ष INT, INT) रिटर्न Varchar (10) एसडीएल डेटा READS आरंभ करें कॉल 1 varchar (10); DECLARE col2 varchar (10); DECLARE str1 varchar (30); DECLARE str2 varchar (30); SET str1 = 'CHR_MORNING' + i; SET str2 = 'CHR_EVENING' + i; चुनें str1, str2 से att_t_register WHERE CHR_MONTH = सोम और INT_YEAR = वर्ष; SET col1 = str1; SET col2 = str2; यदि (कॉल 1 = 'सून' और amp; col2 = 'एसएन') तो फिर 'एस'; यदि है तो (col1 = 'एचओएल' और amp; col2 = 'एचओएल') फिर वापसी 'एच'; यदि हां, तो (कॉल 1 = 'एल ई ए' और amp; कॉल 2 = 'एल ई ए') फिर 'एल'; यदि है तो (col1 = 'ABS' और amp; col2 = 'ABS') तो फिर '-'; यदि IF (col1 = 'NA' और amp; col2 = 'NA') तो फिर '-'; अगर अंत; रिटर्न '8'; समाप्त;
जब मैं इस चल रहा था मुझे मिल गया जैसे त्रुटि ..
एसक्यूएल कार्यान्वयन त्रुटि # 1064. प्रतिक्रिया डाटा बेस में आप अपने एसक्यूएल वाक्य रचना में एक त्रुटि है ;
कृपया मेरी मदद करें, जहां मुझे गलती हुई थी। कृपया
पास के पास उपयोग करने के लिए सही सिंटैक्स के लिए आपके मैसेजल सर्वर संस्करण से संबंधित मैन्युअल की जांच करें। >
आपको इसकी आवश्यकता नहीं है, आपको एक संग्रहीत प्रक्रिया की आवश्यकता है।
DELIMITER $$ बनाने की प्रक्रिया proc_name (col_number1 INT में, col_number2 INT) शुरू सेट @ col1: = concat ( 'CHR_MORNING', col_number1); सेट @ col2: = concat ( 'CHR_EVENING', col_number2); सेट @sql: = concat ( 'का चयन मामला है जब ', Col1,' = '' एसएन '' और ', @ col2,' = "सून" तब "एस" WHEN (', @ col1,' = "hol" & amp; amp; & amp;;, @ col2, (",,," एच ") तब" एच "WHEN (', @ col1,' =" एलईए "& amp; & amp; ', @ col2,' =" एलईयू ") तब" एल "WHEN (', @ col1,' = एबीएस "& amp; amp; ', @ col2,' =" ABS ") तब" - "WHEN (', @ col1,' =" NA "& amp; ', @ col2,' =" NA ") तो" - "और" 8 "अंत att_t_register से whatever_you_want_to_name_your_column जहां CHR_MONTH =" जन "और INT_YEAR = 2014; '); @sql से stmt तैयार करें; stmt निष्पादित; DEALLOCATE STMT; END $ $ DELIMITER;
तब आप इसे
कॉल proc_name (1, 1) के साथ निष्पादित करेंगे;
Comments
Post a Comment