首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我必须编写一个过程来选择车辆的详细信息,其中给出了车辆编号作为输入

我必须编写一个过程来选择车辆的详细信息,其中给出了车辆编号作为输入
EN

Stack Overflow用户
提问于 2018-02-22 23:19:23
回答 2查看 137关注 0票数 0

我的模式为vehicle(vehicle_no,engine_no,offence_count,license_status,owner_no);我使用查询创建了一个类似于vehicle表的新表

create table vehi as select * from vehicle where 1=2;

我试着像这样使用这个过程

create or replace procedure dispvehicle(num in number) begin select * into vehi from vehicle where vehicle_no=num; end; /

但是这个过程显示了一个错误

代码语言:javascript
复制
"3/1     PL/SQL: SQL Statement ignored
3/15     PLS-00403: expression 'VEHI' cannot be used as an INTO-target of
         a SELECT/FETCH statement

3/20     PL/SQL: ORA-00904: : invalid identifier"

你能帮我解决这个问题吗?

EN

回答 2

Stack Overflow用户

发布于 2018-02-22 23:39:51

您不能像以前那样在表中插入数据。尝试使用:

代码语言:javascript
复制
CREATE OR REPLACE PROCEDURE dispvehicle (num IN NUMBER) AS 

 BEGIN
    INSERT INTO VEHI('fields') SELECT 'fields' FROM vehicle WHERE vehicle_no=num; 
 END dispvehicle; 
 /
票数 0
EN

Stack Overflow用户

发布于 2018-02-22 23:47:40

您必须将变量vehi定义为rowtype,即使vehi是数据库中已定义的对象,通过我提到的变量定义,也不会出现任何问题,并且它将接受vehi作为local变量,而不是db的object。顺便说一句,过程的定义中缺少is子句。

因此,您可以成功地尝试以下操作:

代码语言:javascript
复制
create or replace procedure dispvehicle(num in number) is
  vehi vehicle%rowtype;
begin
  select * into vehi from vehicle where vehicle_no=num;
end;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48930971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档