SELECT oder_money into money FROM view_oder_vip WHERE oder_id=p_oder_id;、
时间: 2024-02-01 22:04:44 浏览: 26
这是一条 SQL 语句,作用是从名为 "view_oder_vip" 的视图中选择 "oder_money" 列,并将其赋值给变量 "money",其中 "p_oder_id" 是参数,用于指定要查询的订单ID。视图是一个虚拟表,它是基于一个或多个表的查询结果构建的。在这个例子中,"view_oder_vip" 可能是一个包含订单信息的视图。这条语句可能用于在程序中获取指定订单的金额信息。
相关问题
SELECT oder_money into money FROM view_oder_vip WHERE oder_id=p_oder_id;4
是的,你可以使用 `SELECT INTO` 语句来将查询结果赋值给变量。这个语句的作用是从 `view_oder_vip` 视图中查询到 `oder_id` 等于 `p_oder_id` 的记录,并将 `oder_money` 的值赋给变量 `money`。这个语句可以替代原来的 `money:=(SELECT oder_money FROM view_oder_vip WHERE oder_id=p_oder_id);` 语句。完整的代码如下:
```
CREATE OR REPLACE FUNCTION discount(p_oder_id IN NUMBER) RETURN NUMBER IS
dis_money NUMBER := 0;
money NUMBER :=0;
BEGIN
SELECT oder_money INTO money FROM view_oder_vip WHERE oder_id=p_oder_id;
if money>=100 and money<200 then
discount:=10;
elsif money>=200 and money<300 then
discount:=30;
elsif money>=300 and money<400 then
discount:=50;
elsif money>=400 and money<500 then
discount:=70;
elsif money>=500 then
discount:=0.2*money;
else
discount:=0.05*money;
end if;
DBMS_OUTPUT.PUT_LINE('订单金额为:' || money);
DBMS_OUTPUT.PUT_LINE('折扣金额为:' || discount);
RETURN discount;
END; /
```
执行该函数后,会在输出窗口中先输出订单金额,然后输出折扣金额。
declare sit_number number :=1; money number :=0; begin for row in (select sit_where from view_oder) loop if row.sit_where=sit_number then create or replace view view_oder_1 as select * from view_oder where sit_where=row.sit_where; select * from view_oder_1; select money_of_order1 into money from dual; update m_oder set oder_money = money where sit_where = sit_number; sit_number:=sit_number+1; end if; end loop; end;
根据您提供的代码,这是一个PL/SQL块,它尝试在循环中创建一个名为`view_oder_1`的视图,并更新一个名为`m_oder`的表中的数据。根据代码中的逻辑,您想要循环遍历视图`view_oder`中的所有行,如果`sit_where`等于变量`sit_number`,则创建具有相同`sit_where`值的视图`view_oder_1`,然后将`money_of_order1`的值赋给变量`money`,并将该值更新到`m_oder`表中,最后递增`sit_number`。但是,这段代码有一些问题和潜在的风险:
1. 在循环中创建视图是一个不好的做法,因为它可能在每次迭代中都创建一个新的视图,这可能会导致性能问题和内存泄漏问题。
2. 在更新表中的数据时,您没有指定任何条件,这意味着将更新表中的所有记录。如果表中有很多记录,这可能会导致性能问题和数据不一致问题。
3. 您没有捕获任何异常,如果在代码执行过程中发生错误,将会导致整个程序崩溃。
因此,建议您重新审视您的代码逻辑,并根据需要进行修改。如果您需要更多的帮助和指导,请提供更多的上下文信息和问题细节。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)