`

几个关于正确及错误PL/SQL对照使用的示例

阅读更多
/**

这是几个关于正确及错误PL/SQL对照使用的示例

*/

create table test(tid int  primary key not null,tname varchar2(50));

create sequence test_seq start with 1 increment by 1;

insert into test values(test_seq.nextval,'FLB');

insert into test values(test_seq.nextval,'FLB1');

---------------------------------

--错误函数1

create or replace function f

return int

begin

       return 5*5;

end;

--错误函数2

create or replace function f()

return number

is

begin

       return 5*5;

end;

--错误函数3

create or replace function f

return number

begin

       return 5*5;

end;

--该函数的正确函数1

create or replace function f

return number

is

begin

       return 5*5;

end;

--该函数的正确函数2

create or replace function f

return int

is

begin

       return 5*5;

end;

------------------------------------

--这是个正确函数,不过调试这个函数花了好几十分钟的时间,不熟悉了

create or replace function f5

(pid number)

return varchar2

is

     rname varchar2(50);

     cursor cname

     is

     select tname from test where tid=pid;

begin

     open cname;

     fetch cname into rname;

     

     return rname;

end;

--调用函数用call出错

call f5(2);

--调用出错,函数必须有值的接收者

begin

     f5(2);

end;

--这种方法调用不正确

declare

r varchar2;

begin

     r:=f5(2);

     dbms_output.put_line(r);

end;

--这种方法调用正确

begin

     dbms_output.put_line(f5(2));

end;

--这种方法调用正确

declare

r varchar2(50);

begin

     r:=f5(2);

     dbms_output.put_line(r);

end;

--正确函数

create or replace function f4

(ttid in integer)

return varchar2

is

       rname varchar(50);

       cursor cname

       is 

       select tname from test where tid=ttid;

begin

       open cname;

       fetch cname into rname;

       return rname;

end;

--正确函数

create or replace function f7

(n in number)

return number

is

begin

       return n*n;

end f7;

------------------------------------------

--过程

create or replace procedure p1

is

begin

      dbms_output.put_line('First Procuder');

end p1;

--调用过程用call不会出错

call p1();

--这种方法调用过程不正确

begin

     dbms_output.put_line(p1());

end;

----------注意函数与过程的调用的不同处----------

------------------------------------------------

--错误过程

create or replace procedure p3

(ttid in Integer)

is

       rname varchar;

       cursor cname

       is 

       select tname from test where tid=ttid;

begin

       open cname;

       fetch cname into rname;

       dbms_output.put_line(rname);

end;

--正确过程

create or replace procedure p3

(ttid in Integer)

is

       rname varchar(50);

       cursor cname

       is 

       select tname from test where tid=ttid;

begin

       open cname;

       fetch cname into rname;

       dbms_output.put_line(rname);

end;
分享到:
评论

相关推荐

    Oracle PL SQL程序设计 上 第五版(代码示例)

    《oracle pl/sql程序设计(第5版)》基于oracle数据库11g,从pl/sql编程、pl/sql程序结构、pl/sql程序数据、pl/sql中的sql、pl/sql应用构建、高级pl/sql主题6个方面详细系统地讨论了pl/sql以及如何有效地使用它。...

    一个对数据库的操作工具PL/SQLpl/sqL工具

    PL/SQL是Oracle公司开发的一种过程化语言,全称为Procedural Language/Structured Query Language,它是SQL的一个扩展,专门用于处理Oracle数据库系统。这个“PL/SQL工具”显然是一个用于辅助管理和操作Oracle数据库...

    pl/sql最新中文手册

    PL/SQL是Oracle数据库系统中的一个关键组成部分,它是一种过程化语言,专为数据库操作设计。这个"PL/SQL最新中文手册"显然是一份详细解释PL/SQL 7.0版本的指南,对于学习和精通Oracle数据库编程至关重要。以下是手册...

    oracle10g_pl/sql

    Oracle 10g PL/SQL 是Oracle数据库系统中用于创建和管理存储过程、函数、触发器等数据库对象的编程语言。本教程旨在为初学者提供一个全面的学习平台,同时也为经验丰富的开发者提供参考资料。PL/SQL是Oracle特有的...

    Oracle PL/SQL实战(待续)

    "demobld.sql"这个文件名很可能表示一个示例或演示的构建脚本,可能包含了各种PL/SQL代码示例,用于创建和操作数据库对象。在实践中,我们通常会用这样的脚本来创建表、索引、视图、存储过程等。比如,文件可能包含...

    pl/sql developer11.0

    此外,"欧普软件园.url"可能是指向一个提供软件下载和相关资源的网站链接,用户可以在那里获取更多关于PL/SQL Developer 11.0的信息和支持。 总之,PL/SQL Developer 11.0是Oracle开发人员不可或缺的工具,其强大的...

    pl/sql developer使用教程

    在启动PL/SQL Developer后,你会看到一个清晰的工作区,包括多个窗口和面板。主窗口通常包含代码编辑器,左侧是对象浏览器,显示数据库中的表、视图、过程和函数等对象。顶部菜单栏提供各种功能选项,如文件操作、...

    oracle 9i pl/sql程序设计笔记

    通过上述对Oracle 9i PL/SQL程序设计笔记的总结,我们可以看到PL/SQL作为一种强大的数据库编程语言,提供了丰富的功能来支持数据处理、事务控制及业务逻辑的实现。掌握PL/SQL的不同块类型及其使用方法对于开发高效、...

    pl/sql64位

    使用64位PL/SQL Developer进行开发时,需要注意以下几点: 1. **兼容性**:确保你的操作系统是64位的,并且Oracle数据库服务器也是64位版本,以保证最佳的兼容性。 2. **驱动程序**:如果需要连接其他应用程序,如...

    Oracle PL/SQL程序设计(第5版)示例代码

    Oracle PL/SQL程序设计是数据库开发中的核心技能之一,尤其在企业级应用中广泛使用。本书《Oracle PL/SQL程序设计(第5版)》由O'Reilly出版社出版,为学习和理解Oracle数据库的PL/ZIP编程语言提供了丰富的示例代码...

    oracle 经典资料及PL/SQL 使用指南 英文版

    这篇“Oracle经典资料及PL/SQL使用指南”的英文版,将帮助学习者深入理解Oracle数据库的基础概念以及PL/SQL的高级用法。 一、Oracle数据库基础 1. 数据库架构:Oracle数据库采用多层架构,包括物理存储层、逻辑...

    pl/sql 免安装,绿色版pl/sql

    1. **PL/SQL编程支持**:PL/SQL Developer内置了强大的PL/SQL编辑器,支持语法高亮、自动完成、错误检查等功能,使开发人员能够高效编写PL/SQL代码。此外,还具备代码折叠、查找替换、书签设置等实用功能,提高了...

    PL/SQL编程基础知识

    在PL/SQL环境中可以使用的SQL语句主要包括以下几种: - **INSERT**:用于向表中插入新记录。 - **UPDATE**:用于更新现有记录。 - **DELETE**:用于删除表中的记录。 - **SELECT INTO**:用于从表中选取数据,并将...

    oracle pl/sql从入门到精通 配套源代码

    Oracle PL/SQL是一种强大的编程语言,它结合了SQL(结构化查询语言)的数据库操作功能与PL/SQL的程序设计特性,广泛应用于Oracle数据库的开发和管理。这本书"Oracle PL/SQL从入门到精通"的配套源代码,显然是为了...

    PL/SQL开发文档1

    标题中提到的“PL/SQL开发文档1”,说明本文档是关于PL/SQL开发的入门级指导材料,面向希望学习使用PL/SQL进行数据库程序单元开发的用户。文档很可能是Oracle公司内部或其授权的培训机构用于教学目的的官方材料。 ...

    PL/SQL下载

    对于初学者,可以从以下几个方面入手学习PL/SQL: 1. **基础语法**:理解PL/SQL的基本数据类型、变量声明、流程控制结构等。 2. **函数和过程**:掌握如何定义和调用自定义函数和过程。 3. **游标**:了解如何使用...

    ORACLE PL/SQL从入门到精通

    ORACLE PL/SQL是从入门到精通的专业知识,涵盖了数据库开发与管理的多个方面,包括触发器、过程、函数、软件包、异常处理、游标、循环、分支、变量使用、数据库安装等关键知识点。 触发器是数据库中用来保证数据...

    pl/sql使用软件

    以下是一些关于PL/SQL的重要知识点: 1. **变量与常量**:PL/SQL支持声明变量和常量,它们用于存储数据。变量可以在程序执行过程中改变其值,而常量则一旦赋值后不可更改。 2. **数据类型**:PL/SQL有多种内置数据...

    Oracle PL/SQL程序设计(第5版)(套装上下册)

    从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何有效地使用它。《Oracle PL/SQL程序设计(第5版)(套装上下册)》能够帮助...

    pl/sql快捷插件

    而“pl/sql快捷插件”则是针对PL/SQL Developer的一个增强工具,它旨在提高用户的开发效率和工作流程。 PL/SQL插件通常包含一系列扩展功能,如代码片段、自动化脚本、自定义快捷键、增强型代码提示以及更高效的...

Global site tag (gtag.js) - Google Analytics