से यह प्रक्रिया दूरस्थ रूप से और स्थानीयहोस्ट दोनों पर MySQL कमांडलाइन से काम करती है और यह PHP से कॉल होने पर काम करती है। सभी मामलों में अनुदान पर्याप्त हैं:MySQL संग्रहीत प्रक्रिया विफल होती है जब R
CREATE PROCEDURE `myDB`.`lee_expout` (IN e int, IN g int)
BEGIN
select lm.groupname, lee.location, starttime, dark,
inadist,smldist,lardist,emptydur,inadur,smldur,lardur,emptyct,entct,inact,smlct,larct
from lee join leegroup_map lm using (location)
where exp_id= e and std_interval!=0 and groupset_id= g
order by starttime,groupname,location;
END
मैं इसे आर से कॉल करने के लिए कोशिश कर रहा हूँ:
library(DBI)
library(RMySQL)
db <- dbConnect(MySQL(), user="user", password="pswd",
dbname="myDB", host="the.host.com")
#args to pass to the procedure
exp_id<-16
group_id<-2
#the procedure call
p <- paste('CALL lee_expout(', exp_id, ',', group_id,')', sep= ' ')
#the bare query
q <- paste('select lm.groupname, lee.location, starttime, dark,
inadist,smldist,lardist,emptydur,inadur,smldur,lardur,emptyct,entct,inact,smlct,larct
from lee join leegroup_map lm using (location)
where exp_id=',
exp_id,
' and std_interval!=0 and groupset_id=',
group_id,
'order by starttime,groupname,location', sep=' ')
rs_p <- dbSendQuery(db, statement=p) #run procedure and fail
p_data<-fetch(rs_p,n=30)
rs_q <- dbSendQuery(db, statement=q) #or comment out p, run query and succeed
q_data<-fetch(rs_q,n=30)
नंगे क्वेरी ठीक चलाता है। प्रक्रिया कॉल mysqlExecStatement (कोन, बयान, ...) में
RApache चेतावनी/त्रुटि के साथ विफल !!! त्रुटि: RS-DBI चालक: (कर सकते थे नहीं रन बयान: प्रक्रिया myDB.lee_expout एक परिणाम दिए गए संदर्भ में सेट)
MySQL docs कहना
बयान है कि 0 निर्धारित किया जा सकता के लिए वापस नहीं लौट सकते परिणामकेवल सेट करने के लिए रनटाइम पर, एक प्रोसेसर% s परिणाम संदर्भ त्रुटि में सेट परिणाम परिणाम नहीं लौटा सकता है।
एक सोच सकता है कि यदि एक प्रक्रिया है जो त्रुटि फेंक करने जा रहे थे, यह सिर्फ आर
सेइसे ठीक करने पर कोई विचार करने के बजाय सभी परिस्थितियों में फेंक दिया होगा?
क्या आपने अपनी स्टोर प्रो चलाने के लिए प्रबंधन किया था? क्या आप सही उत्तर चिह्नित कर सकते हैं जो आपकी मदद करता है? या यदि उनमें से कोई भी आप स्वयं को पोस्ट नहीं करते हैं और इसका उत्तर देते हैं।तो इच्छुक लोगों को यहां एक समाधान मिल सकता है। धन्यवाद – jangorecki
@JanGorecki: मैं संग्रहीत प्रक्रिया को चलाने के लिए प्रबंधन नहीं किया था। मुझे नंगे क्वेरी का उपयोग करना पड़ा। यह थोड़ी देर पहले था और शायद आर के डीबीआई पैकेज अब संग्रहित प्रक्रियाओं के बारे में बेहतर है। – dnagirl
मैं MySQL का उपयोग नहीं करता, लेकिन मैंने आर का उपयोग कर माइक्रोसॉफ्ट एसक्यूएल डेटाबेस पर एसक्यूएल प्रश्नों को चलाया है। मैंने देखा है कि जब भी, क्वेरी में, नंगे चयन कथन के अलावा कुछ भी है, प्रक्रिया विफल हो जाती है। मुझे नहीं पता कि यह MySQL में आवश्यक है, लेकिन क्या आपने "निर्माण प्रक्रिया", "प्रारंभ करें" और "अंत" रेखाओं को हटाने का प्रयास किया है? – thepule