search
HomeDatabaseOracleWhat is the difference between stored procedures and functions in oracle

Difference: 1. Stored procedures are used to complete specific operations or tasks in the database, while functions are used for specific data; 2. The program header of the stored procedure is declared with PROCEDURE, and no return type is required when declaring. The program header of the function is declared with FUNCTION, and the return type must be described when declaring.

What is the difference between stored procedures and functions in oracle

The operating environment of this tutorial: Windows 7 system, Oracle 11g version, Dell G3 computer.

Stored Procedure

Stored Procedure (Stored Procedure) is a set of SQL statements to complete specific functions. It is compiled and stored in the database. middle. The user executes a stored procedure by specifying its name and giving parameters (if the stored procedure has parameters). Stored procedures are an important object in the database, and any well-designed database application should use stored procedures. A stored procedure is a procedure written by flow control and SQL statements. This procedure is compiled and optimized and stored in the database server. It only needs to be called when the application program uses it. In ORACLE, several related procedures can be combined together to form a program package.

Advantages:

1. The stored procedure is only compiled when it is created. There is no need to recompile the stored procedure every time it is executed in the future. However, the general SQL statement is compiled every time it is executed. It is compiled once, so using stored procedures can improve database execution speed.

2. When performing complex operations on the database (such as Update, Insert, Query, and Delete on multiple tables), this complex operation can be encapsulated in a stored procedure and combined with the transaction processing provided by the database. use.

3. Stored procedures can be reused, which can reduce the workload of database developers.

4. High security, you can set that only a certain user has the right to use the specified stored process.

The difference between stored procedures and functions

The biggest difference between the two is:

1 ). Functions always return data to the caller, and generally only return a value; 2). Stored procedures (procedures) do not directly return data, but can change the values ​​of output parameters, which can be approximately regarded as returning values. , and there is no limit on the number of values ​​for the stored procedure output parameters.

From a general application point of view, if you do not need a return value or need multiple return values, use a stored procedure. If you only use one return value, use a function.

2. There can only be DDL (such as select, etc.) statements in the function definition; DML statements are mainly included in the procedure (when performing complex operations on the database, such as Update, Insert, Query, and Delete on multiple tables) ).

If you want to use the result set of select, you must use a cursor

What is the difference between stored procedures and functions in oracle

Actual example

1. Function

(1) Create function

create or replace function get_salary(
    dept_no number,
    emp_count **out** number)
    return number IS
    v_sum number;begin
    ...exception    ...end get_salary

(2) Call function

declare 
    v_num number;
    v_sum number;begin
    ...(这里应该出现函数名表示调用)end

2, stored procedure

(1) Create stored procedure

create or replace procedure pro_demo(
    dept_no number default 10,
    sal_sum out number,
    emp_count out number)
IS
begin
    ...
exception
    ...
end proc_demo;

(2) Call stored procedure

Calling syntax:

1), exec ;

2), execute ;

3), in PL/SQL Called directly in the statement block.

For example:

declare
    v_num number;
    v_sum number(8,2);
begin
    procedure pro_demo(dept_no=>1,sal_num=>900,emp_count=>10)(这里出现存储过程名表示调用,传递参数值用=>)
end;

3. Local stored procedure

In PL/SQL, you can also create a local stored procedure in the declare block instead of The purpose of using the keyword create is to avoid storing the stored procedure in the database and avoid the trouble caused by changing the database. Its main usage scenario is to temporarily use a stored procedure instead of reusing it many times in the future. .

Example:

declare
    v_num number;
    v_sum number(8,2);
procedure proc_demo(
    dept_no number default 10,
    sal_sum out number,
    emp_count out number)
IS
begin
    ...(这里不用出现存储过程名)
exception
    ...
end proc_demo;

Recommended tutorial: "Oracle Tutorial"

The difference between stored procedures and functions

Stored Procedure

Function

Used to complete specific operations or tasks in the database (such as insertion, deletion, etc.)

Used for specific data ( Such as query return value)

Use PROCEDURE in the program header declaration

Use FUNCTION

in the program header declaration

The return type is not required when declaring the program header

The return type must be described when declaring the program header, and PL/SQL The block must include at least one valid RETURN statement

You can use IN/OUT/IN OUT 3 parameter modes

You can use IN/OUT/IN OUT 3 parameter modes

Can be executed as an independent PL/SQL statement

Cannot be executed independently, must be called as part of an expression

Can return zero or more values ​​via OUT/IN OUT

The RETURN statement returns a value, and the value is consistent with the declaration part. You can also bring out variables through OUT type parameters

##SQL statement Stored procedures cannot be called in (DML or SELECT)

Functions can be called in SQL statements (DML or SELECT)

The above is the detailed content of What is the difference between stored procedures and functions in oracle. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
什么是oracle asm什么是oracle asmApr 18, 2022 pm 04:16 PM

oracle asm指的是“自动存储管理”,是一种卷管理器,可自动管理磁盘组并提供有效的数据冗余功能;它是做为单独的Oracle实例实施和部署。asm的优势:1、配置简单、可最大化推动数据库合并的存储资源利用;2、支持BIGFILE文件等。

oracle怎么查询所有索引oracle怎么查询所有索引May 13, 2022 pm 05:23 PM

方法:1、利用“select*from user_indexes where table_name=表名”语句查询表中索引;2、利用“select*from all_indexes where table_name=表名”语句查询所有索引。

Oracle怎么查询端口号Oracle怎么查询端口号May 13, 2022 am 10:10 AM

在Oracle中,可利用lsnrctl命令查询端口号,该命令是Oracle的监听命令;在启动、关闭或重启oracle监听器之前可使用该命令检查oracle监听器的状态,语法为“lsnrctl status”,结果PORT后的内容就是端口号。

oracle全角怎么转半角oracle全角怎么转半角May 13, 2022 pm 03:21 PM

在oracle中,可以利用“TO_SINGLE_BYTE(String)”将全角转换为半角;“TO_SINGLE_BYTE”函数可以将参数中所有多字节字符都替换为等价的单字节字符,只有当数据库字符集同时包含多字节和单字节字符的时候有效。

oracle怎么删除sequenceoracle怎么删除sequenceMay 13, 2022 pm 03:35 PM

在oracle中,可以利用“drop sequence sequence名”来删除sequence;sequence是自动增加数字序列的意思,也就是序列号,序列号自动增加不能重置,因此需要利用drop sequence语句来删除序列。

oracle怎么查询数据类型oracle怎么查询数据类型May 13, 2022 pm 04:19 PM

在oracle中,可以利用“select ... From all_tab_columns where table_name=upper('表名') AND owner=upper('数据库登录用户名');”语句查询数据库表的数据类型。

oracle查询怎么不区分大小写oracle查询怎么不区分大小写May 10, 2022 pm 05:45 PM

方法:1、利用“LOWER(字段值)”将字段转为小写,或者利用“UPPER(字段值)”将字段转为大写;2、利用“REGEXP_LIKE(字符串,正则表达式,'i')”,当参数设置为“i”时,说明进行匹配不区分大小写。

Oracle怎么修改sessionOracle怎么修改sessionMay 13, 2022 pm 05:06 PM

方法:1、利用“alter system set sessions=修改后的数值 scope=spfile”语句修改session参数;2、修改参数之后利用“shutdown immediate – startup”语句重启服务器即可生效。

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools