返回顶部
首页 > 资讯 > 数据库 >2011-11-16 %ROWTYPE的声明与使用
  • 438
分享到

2011-11-16 %ROWTYPE的声明与使用

2024-04-02 19:04:59 438人浏览 独家记忆
摘要

Http://www.itpub.net/thread-1499223-15-1.html 150楼 我连接到HR用户并运行了如下语句: CREATE TABLE plch_pa

Http://www.itpub.net/thread-1499223-15-1.html

150楼

我连接到HR用户并运行了如下语句:

CREATE TABLE plch_parts
(
   partnum    NUMBER
, partname   VARCHAR2 (50)
)
/
BEGIN
   INSERT INTO plch_parts
        VALUES (1, 'Chassis');
   COMMIT;
END;
/
CREATE OR REPLACE PACKAGE plch_pkg
IS
   TYPE parts_t IS TABLE OF plch_parts%ROWTYPE
                      INDEX BY PLS_INTEGER;
   PROCEDURE plch_show_parts (parts_in IN parts_t);
END;
/
CREATE OR REPLACE PACKAGE BODY plch_pkg
IS
   PROCEDURE plch_show_parts (parts_in IN parts_t)
   IS
   BEGIN
      FOR indx IN 1 .. parts_in.COUNT
      LOOP
         DBMS_OUTPUT.put_line (parts_in (indx).partname);
      END LOOP;
   END;
END;
/
GRANT SELECT ON plch_parts TO scott
/
GRANT EXECUTE ON plch_pkg TO scott
/

然后我又用SCOTT用户连接并创建了这张表:

CREATE TABLE plch_parts
(
   partnum    NUMBER
, partname   VARCHAR2 (50)
)
/
BEGIN
   INSERT INTO plch_parts
        VALUES (100, 'Wheel');
   COMMIT;
END;
/

下列的哪些选项包含了下列语句块的一个声明部分,从而使得这个块执行之后"Wheel"会被显示出来?

BEGIN
   SELECT *
     BULK COLLECT INTO l_parts
     FROM plch_parts;
   hr.plch_pkg.plch_show_parts (l_parts);
END;

(A)

DECLARE
   TYPE parts_t IS TABLE OF plch_parts%ROWTYPE
                      INDEX BY PLS_INTEGER;
   l_parts   parts_t;
sql> DECLARE
  2    TYPE parts_t IS TABLE OF plch_parts%ROWTYPE INDEX BY PLS_INTEGER;
  3  
  4    l_parts parts_t;
  5  
  6  BEGIN
  7    SELECT * BULK COLLECT INTO l_parts FROM plch_parts;
  8  
  9    yoga.plch_pkg.plch_show_parts(l_parts);
 10  END;
 11  /
DECLARE
  TYPE parts_t IS TABLE OF plch_parts%ROWTYPE INDEX BY PLS_INTEGER;
  l_parts parts_t;
BEGIN
  SELECT * BULK COLLECT INTO l_parts FROM plch_parts;
  yoga.plch_pkg.plch_show_parts(l_parts);
END;
ORA-06550: 第 9 行, 第 3 列: 
PLS-00306: 调用 'PLCH_SHOW_PARTS' 时参数个数或类型错误
ORA-06550: 第 9 行, 第 3 列: 
PL/SQL: Statement ignored
SQL>

(B)

DECLARE
   TYPE parts_t IS TABLE OF hr.plch_parts%ROWTYPE
                      INDEX BY PLS_INTEGER;
   l_parts   parts_t;
SQL> DECLARE
  2    TYPE parts_t IS TABLE OF yoga.plch_parts%ROWTYPE INDEX BY PLS_INTEGER;
  3  
  4    l_parts parts_t;
  5  
  6  BEGIN
  7    SELECT * BULK COLLECT INTO l_parts FROM plch_parts;
  8  
  9    yoga.plch_pkg.plch_show_parts(l_parts);
 10  END;
 11  /
DECLARE
  TYPE parts_t IS TABLE OF yoga.plch_parts%ROWTYPE INDEX BY PLS_INTEGER;
  l_parts parts_t;
BEGIN
  SELECT * BULK COLLECT INTO l_parts FROM plch_parts;
  yoga.plch_pkg.plch_show_parts(l_parts);
END;
ORA-06550: 第 9 行, 第 3 列: 
PLS-00306: 调用 'PLCH_SHOW_PARTS' 时参数个数或类型错误
ORA-06550: 第 9 行, 第 3 列: 
PL/SQL: Statement ignored
SQL>

(C)

DECLARE
   l_parts   hr.plch_pkg.parts_t;
SQL> DECLARE
  2    l_parts yoga.plch_pkg.parts_t;
  3  
  4  BEGIN
  5    SELECT * BULK COLLECT INTO l_parts FROM plch_parts;
  6  
  7    yoga.plch_pkg.plch_show_parts(l_parts);
  8  END;
  9  /
Wheel
PL/SQL procedure successfully completed
SQL>

(D)

DECLARE
   SUBTYPE parts_t IS hr.plch_pkg.parts_t;
   l_parts   parts_t;
SQL> DECLARE
  2    SUBTYPE parts_t IS yoga.plch_pkg.parts_t;
  3    l_parts parts_t;
  4  
  5  BEGIN
  6    SELECT * BULK COLLECT INTO l_parts FROM plch_parts;
  7  
  8    yoga.plch_pkg.plch_show_parts(l_parts);
  9  END;
 10  /
Wheel
PL/SQL procedure successfully completed
SQL>

实测用yoga代替hr,test代替scott

答案在158楼

2011-11-16 答案CD.

%ROWTYPE是一种记录,如果你定义两个结构一模一样的记录类型,它们仍然不能够互换,会报类型不匹配的错误。

您可能感兴趣的文档:

--结束END--

本文标题: 2011-11-16 %ROWTYPE的声明与使用

本文链接: https://lsjlt.com/news/46470.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 2011-11-16 %ROWTYPE的声明与使用
    http://www.itpub.net/thread-1499223-15-1.html 150楼 我连接到HR用户并运行了如下语句: CREATE TABLE plch_pa...
    99+
    2024-04-02
  • 浅析Golang中变量与常量的声明与使用
    目录变量变量的类型声明变量常量iota常见的使用iota的技巧变量 变量的类型 变量的作用是用来存储数据,不同的变量保存的数据类型有可能是不一样的,一般常见的数据类型有:整型、浮点型...
    99+
    2023-05-14
    Golang变量与常量声明 Golang变量 常量 Go 变量 常量
  • Vue中的过滤器如何声明与使用
    这篇文章主要讲解了“Vue中的过滤器如何声明与使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue中的过滤器如何声明与使用”吧!一、什么是过滤器过滤器提供给我们的一种数据处理方式。过滤器...
    99+
    2023-07-05
  • PL/SQL中的变量如何声明与使用
    在PL/SQL中,变量可以通过DECLARE关键字进行声明,然后可以使用该变量存储数据,并在程序中进行操作。以下是一个简单示例: D...
    99+
    2024-05-07
    PL/SQL
  • Golang中变量与常量怎么声明与使用
    这篇文章主要介绍“Golang中变量与常量怎么声明与使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Golang中变量与常量怎么声明与使用”文章能帮助大家解决问题。变量变量的类型变量的作用是用来存...
    99+
    2023-07-05
  • GO语言函数(func)的声明与使用详解
    GO语言函数介绍 GO是编译性语言,所以函数的顺序是无关紧要的,为了方便阅读,建议入口函数main写在最前面,其余函数按照功能需要进行排列 GO的函数不支持嵌套,重载和默认参数GO的...
    99+
    2022-12-20
    GO语言函数声明与使用 GO语言递归函数 GO语言内置函数 GO语言函数defer应用 GO语言函数可变长度参数
  • Go语言变量与常量如何声明与使用
    本文小编为大家详细介绍“Go语言变量与常量如何声明与使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Go语言变量与常量如何声明与使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。变量什么是变量?变量是一块可以...
    99+
    2023-07-05
  • 详解PHP中函数声明与使用方法
    PHP是一种强大的、开源的服务器端脚本语言,广泛用于Web开发。其中,函数(function)是PHP中最重要的组成部分之一。函数是一段可重复使用的代码块,用于执行特定的任务。本文将介绍PHP中函数的使用方法。声明函数声明函数是指定义函数名...
    99+
    2023-05-14
    php php函数
  • PHP中函数声明与使用的方法是什么
    今天小编给大家分享一下PHP中函数声明与使用的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。声明函数声明函数是指定...
    99+
    2023-07-05
  • C++11的override说明符怎么使用
    本篇内容主要讲解“C++11的override说明符怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++11的override说明符怎么使用”吧!多态和虚函数多态是C++的重要特征之一,...
    99+
    2023-06-19
  • session在php中的声明和使用
    这篇文章将为大家详细讲解有关session在php中的声明和使用,文章内容质量较高,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。session的工作原理:...
    99+
    2023-05-31
    php session
  • 使用Kotlin怎么定义函数与声明变量
    使用Kotlin怎么定义函数与声明变量?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Kotlin基础教程之函数定义与变量声明可以看到,函数定义就是 <访问控制符> ...
    99+
    2023-05-31
    kotlin 声明变量 函数定义
  • 详解Swift中属性的声明与作用
    一、引言 属性将值与类,结构体,枚举进行关联。Swift中的属性分为存储属性和计算属性两种,存储属性用于存储一个值,其只能用于类与结构体,计算属性用于计算一个值,其可以用于类,结构体和枚举。 二、存储属性 ...
    99+
    2022-06-04
    详解 属性 声明
  • 重学Go语言之变量与常量的声明与使用详解
    目录变量变量名声明变量作用域常量iota 常量生成器小结变量 什么是变量?变量是一块可以随时存放数据的内存区域。在我们申请这块内存区域(声明变量)时,需要指定变量名以及变量的数据类型...
    99+
    2023-03-02
    Go语言变量 常量 Go语言变量 Go语言 常量
  • C# 枚举类型的声明和使用
    目录前言相关介绍一、枚举声明二、声明位置三、枚举使用总结前言 学习记录下枚举的声明和使用,枚举可用来规范开发 文章中代码的项目名为Project1,C#类名为Class1 相关介...
    99+
    2024-04-02
  • Go中的channel怎么声明和使用
    这篇文章主要介绍了Go中的channel怎么声明和使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Go中的channel怎么声明和使用文章都会有所收获,下面我们一起来看看吧。channelGo语言中的通道(c...
    99+
    2023-07-05
  • ES6中生成器函数的声明与调用
    这篇文章主要介绍ES6中生成器函数的声明与调用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!生成器函数的声明与调用生成器函数是ES6提供的一种异步编程解决方案,与传统函数完全不同,就...
    99+
    2024-04-02
  • C#中的委托怎么声明和使用
    这篇“C#中的委托怎么声明和使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C#中的委托怎么声明和使用”文章吧。如果要给方...
    99+
    2023-06-30
  • Python中类的声明,使用,属性,实例
    类的定义: 定义类 在Python中,类的定义使用class关键字来实现 语法如下: class className: "类的注释" 类的实体 (当没有实体时 使用pass代替) 下面定义一个鸟类; class ...
    99+
    2023-01-31
    实例 属性 声明
  • Golang语言的多种变量声明方式与使用场景详解
    目录01介绍02变量声明方式标准声明变量不显式赋初始值声明变量省略类型声明变量短变量声明显式类型转换变量列表声明变量声明块03使用场景包级变量全局变量局部变量04注意事项:05总结0...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作