oracle - 调用带参数的plsql过程
问题描述
我试图调用这个程序,但有一些问题
CREATE OR REPLACE Procedure InsertNewReservation
( flight_number IN varchar2,passenger_id IN number,flight_price in number )
IS
s2 number;
BEGIN
insert into Reservations (flightNumber,passengerId) values (flight_number,passenger_id)
returning ID into s2;
insert into Payments (value,reservationId) values (flight_price,s2);
END;
/
我如何调用程序?我试过
BEGIN
InsertNewReservation('FL100',1,120);
END;
/
但它没有用:/
谢谢!
解决方案
因为没有ID
列,但passengerId
在 Reservations 表中:
CREATE OR REPLACE Procedure InsertNewReservation
(
flight_number Reservations.flightNumber%type,
passenger_id Reservations.passengerId%type,
flight_price Payments.value%type
)
IS
s2 Payments.reservationId%type;
BEGIN
insert into Reservations (flightNumber,passengerId)
values(flight_number,passenger_id) returning passengerId into s2;
insert into Payments (value,reservationId) Values (flight_price,s2);
END;
/
顺便说一句,替换变量以使其在表中符合它们各自的类型,并且使用IN
运算符对于过程的参数类型是多余的,因为它是默认值。
推荐阅读
- c# - NopCommerce 4.30 覆盖 Register.cshtml
- rsa - 你能从RSA中的明文、密文和n中找到D吗?
- ios - 如何在本机反应中访问 IOS 的活动屏幕时间?
- python - 熊猫数据框总和相同的键
- django - Django Rest Framework + Swagger:错误 {“detail”:“CSRF 失败:CSRF 令牌丢失或不正确。” }
- snowflake-cloud-data-platform - 雪花分区中删除的工作原理
- vue.js - Vue 3 观察属性不更新
- python - 如何为一个 DataFrame 样本使用 for range 循环 20 次
- javascript - 如何根据对象中类的映射键创建对象?
- amazon-ec2 - 将数据从 dynamodb 写入连接到 EC2 实例队列的 EFS 共享