वाराकार में सरल चयन वक्तव्य जारी करने में संग्रहीत प्रक्रिया समस्या - mysql, sql, संग्रहित प्रक्रियाओं, प्रक्रिया

मेरा यहाँ है बेला

मेरी तालिका यहां दी गई है:

CREATE TABLE IF NOT EXISTS `vehicle` (
`AutoID` int(11) NOT NULL AUTO_INCREMENT,
`VehicleCode` varchar(20) NOT NULL,
`NumberSeats` int(3) NOT NULL,
`VehicleNumber` varchar(10) NOT NULL,
`MaximumAllowed` int(2) NOT NULL,
`City` varchar(4) NOT NULL,
`State` varchar(4) NOT NULL,
`Phone` int(12) DEFAULT NULL,
`Insurance` varchar(30) NOT NULL,
`VehicleType` varchar(10) NOT NULL,
`Address` varchar(255) NOT NULL,
`Tax` varchar(50) NOT NULL,
`InsurancePhoto` varchar(255) NOT NULL,
`RCPhoto` varchar(255) NOT NULL,
`CreatedAt` datetime NOT NULL,
`CreatedBy` varchar(30) NOT NULL,
`UpdatedAt` datetime NOT NULL,
`UpdatedBy` varchar(30) NOT NULL,
`ActiveStatus` tinyint(1) NOT NULL,
`IsDeletable` tinyint(1) NOT NULL,
PRIMARY KEY (`AutoID`),
UNIQUE KEY `VehicleCode` (`VehicleCode`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

और दो रिकॉर्ड्स डाला

INSERT INTO `vehicle` (`AutoID`, `VehicleCode`, `NumberSeats`, `VehicleNumber`, `MaximumAllowed`, `City`, `State`, `Phone`, `Insurance`, `VehicleType`, `Address`, `Tax`, `InsurancePhoto`, `RCPhoto`, `CreatedAt`, `CreatedBy`, `UpdatedAt`, `UpdatedBy`, `ActiveStatus`, `IsDeletable`) VALUES
(1, "100", 0, "", 0, "", "", 0, "", "", "", "", "", "", "0000-00-00 00:00:00", "", "0000-00-00 00:00:00", "", 0, 0),
(2, "101", 0, "", 0, "", "", NULL, "", "", "", "", "", "", "0000-00-00 00:00:00", "", "0000-00-00 00:00:00", "", 0, 0);

मैं नियमित चयन वक्तव्य का उपयोग कर रिकॉर्ड्स का चयन करने में सक्षम हो सकता हूं

SELECT * FROM `vehicle` where VehicleCode = "100"

मैंने चयन करने के लिए प्रक्रिया बनाई

मेरी प्रक्रिया यहां है

DELIMITER //
CREATE PROCEDURE GetVehicle(IN VCode VARCHAR(20))
BEGIN
SELECT *
FROM vehicle
WHERE VehicleCode = VCode;
END //
DELIMITER ;

जबकि मैं अपनी प्रक्रिया तक पहुंचने का प्रयास करता हूं, मुझे कोई परिणाम नहीं मिल रहा है।

CALL `GetVehicle`(100);

मुझे कोई परिणाम नहीं मिल रहा है।

मैं क्या गलती कर रहा हूं और मैं इसे कैसे ठीक कर सकता हूं ??

उत्तर:

जवाब के लिए 0 № 1

वाहनकोड ​​को बदलने का प्रयास करें

CREATE PROCEDURE GetVehicle(IN Vcode VARCHAR(255))

Vcode करने के लिए और फिर उस कथन में इसका उपयोग करें।


जवाब के लिए 0 № 2

मैंने आपके कोड को ठीक करने की कोशिश की है लेकिन आपको अपनी स्कीमा में रिकॉर्ड्स डालना चाहिए और अपने संग्रहीत पैरामीटर नाम को फील्ड नाम से अलग होना चाहिए, उदाहरण के लिए आप इसे "vcode" नाम दे सकते हैं

तो आपकी स्कीमा होना चाहिए

CREATE TABLE IF NOT EXISTS `vehicle` (
`AutoID` int(11) NOT NULL AUTO_INCREMENT,
`VehicleCode` varchar(20) NOT NULL,
`NumberSeats` int(3) NOT NULL,
`VehicleNumber` varchar(10) NOT NULL,
`MaximumAllowed` int(2) NOT NULL,
`City` varchar(4) NOT NULL,
`State` varchar(4) NOT NULL,
`Phone` int(12) DEFAULT NULL,
`Insurance` varchar(30) NOT NULL,
`VehicleType` varchar(10) NOT NULL,
`Address` varchar(255) NOT NULL,
`Tax` varchar(50) NOT NULL,
`InsurancePhoto` varchar(255) NOT NULL,
`RCPhoto` varchar(255) NOT NULL,
`CreatedAt` datetime NOT NULL,
`CreatedBy` varchar(30) NOT NULL,
`UpdatedAt` datetime NOT NULL,
`UpdatedBy` varchar(30) NOT NULL,
`ActiveStatus` tinyint(1) NOT NULL,
`IsDeletable` tinyint(1) NOT NULL,
PRIMARY KEY (`AutoID`),
UNIQUE KEY `VehicleCode` (`VehicleCode`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

insert into vehicle(VehicleCode,NumberSeats,VehicleNumber,MaximumAllowed,
City,State,Phone,Insurance,VehicleType,Address,Tax,
InsurancePhoto,RCPhoto,CreatedAt,CreatedBy,UpdatedAt,
UpdatedBy,ActiveStatus,IsDeletable)
values("100",4,"DES547",7,"Los","CA",44554,"45879","sedan",
"ssssss","55", "sdsdsds","asdasdas",Now(),"saasda",
Now(),"asdasda",1,1);

फिर अपनी संग्रहीत प्रक्रिया को निम्न के रूप में बनाएं

DELIMITER //
create PROCEDURE GetVehicle(IN vcode VARCHAR(255))
BEGIN
SELECT *
FROM vehicle
WHERE VehicleCode = vcode;
END //
DELIMITER ;

अब संग्रहित प्रक्रिया को कॉल करने का प्रयास करें, यह आपके साथ ठीक काम करेगा

call GetVehicle(100);

संबंधित सवाल
सबसे लोकप्रिय