Проблема збереженої процедури в простій виписці Випуск у Varchar - mysql, sql, stored-procedures, procedure

Ось моя Скрипка

Ось Мій Таблиця:

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

Спробуйте змінити VehicleCode в

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

Схожі запитання
Найбільш популярний