Stored Procedure Issue im einfachen Select-Anweisungsproblem in Varchar - mysql, sql, stored-procedures, procedure

Hier ist mein Geige

Hier ist mein Tisch:

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 ;

Und fügte zwei Datensätze ein

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);

Ich kann die Datensätze mit Regular Select Statement auswählen

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

Ich habe das zu wählende Verfahren erstellt

Mein Verfahren ist hier

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

Während ich versuche, auf meine Prozedur zuzugreifen, erhalte ich kein Ergebnis.

CALL `GetVehicle`(100);

Ich bekomme kein Ergebnis.

Was ist der Fehler, den ich mache und wie kann ich es beheben?

Antworten:

0 für die Antwort № 1

Versuchen Sie VehicleCode in zu ändern

CREATE PROCEDURE GetVehicle(IN Vcode VARCHAR(255))

Vcode und dann verwenden Sie es in der WHERE-Anweisung.


0 für die Antwort № 2

Ich habe versucht, Ihren Code es ist in Ordnung, aber Sie sollten Datensätze in Ihr Schema einfügen und ändern Sie Ihre gespeicherten Parameternamen zu anderen als Feldnamen, können Sie es nennen "Vcode" zum Beispiel

also sollte dein Schema sein

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);

Erstellen Sie dann Ihre gespeicherte Prozedur wie folgt

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

versuchen Sie jetzt, die gespeicherte Prozedur aufzurufen, es wird gut mit Ihnen funktionieren

call GetVehicle(100);

Verwandte Fragen