{"id":1580,"date":"2017-11-28T13:34:48","date_gmt":"2017-11-28T06:34:48","guid":{"rendered":"https:\/\/oracletutorial.com\/?page_id=1580"},"modified":"2025-05-26T06:56:04","modified_gmt":"2025-05-26T13:56:04","slug":"plsql-function","status":"publish","type":"page","link":"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-function\/","title":{"rendered":"PL\/SQL Function"},"content":{"rendered":"\r\n<p><strong>Summary<\/strong>: In this tutorial, you&#8217;ll learn how to develop a PL\/SQL function to perform a specific task and return a value.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id='creating-a-plsql-function'>Creating a PL\/SQL function <a href=\"#creating-a-plsql-function\" class=\"anchor\" id=\"creating-a-plsql-function\" title=\"Anchor for Creating a PL\/SQL function\">#<\/a><\/h2>\r\n\r\n\r\n\r\n<p>In PL\/SQL, a function is a reusable code block that performs a specific task and returns a single value.<\/p>\r\n\r\n\r\n\r\n<p>Here&#8217;s the syntax for creating a function:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\"><span class=\"hljs-keyword\">CREATE<\/span> &#91;<span class=\"hljs-keyword\">OR REPLACE<\/span>] <span class=\"hljs-keyword\">FUNCTION<\/span> function_name (\r\n    parameter1 datatype\r\n    parameter2 datatype\r\n) <span class=\"hljs-keyword\">RETURN<\/span> return_type\r\n<span class=\"hljs-keyword\">IS<\/span>\r\n   <span class=\"hljs-comment\">-- declarative section<\/span>\r\n<span class=\"hljs-keyword\">BEGIN<\/span>\r\n   <span class=\"hljs-comment\">-- executable section<\/span>\r\n    \r\n   <span class=\"hljs-keyword\">RETURN<\/span> <span class=\"hljs-keyword\">value<\/span>;\r\n\r\n&#91;<span class=\"hljs-keyword\">EXCEPTION<\/span>]\r\n    &#91;<span class=\"hljs-keyword\">exception<\/span>-handling section]\r\n<span class=\"hljs-keyword\">END<\/span>;\r\n\/<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<p>A function consists of a header and body:<\/p>\r\n\r\n\r\n\r\n<p><strong>Function header<\/strong> consists of a function name and a <code>RETURN<\/code> clause specifying the returned value&#8217;s datatype. Each parameter of the function can be either in the <code>IN<\/code>, <code>OUT<\/code>, or <code>INOUT<\/code> mode. For more information on the parameter mode, check out the <a href=\"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-procedure\/\">PL\/SQL procedure tutorial<\/a><\/p>\r\n\r\n\r\n\r\n<p><span style=\"box-sizing: border-box; margin: 0px; padding: 0px;\"><strong>The function body<\/strong>\u00a0is the same as the\u00a0<a href=\"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-procedure\/\" target=\"_blank\" rel=\"noopener\">procedure&#8217;s<\/a> body, which has three sections: declaration, execution, and exception handler.<\/span><\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>Declaration section<\/strong> is where you declare <a href=\"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-variables\/\">variables<\/a>, <a href=\"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-constants\/\">constants<\/a>, <a href=\"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-cursor\/\">cursors<\/a>, and user-defined types. It the <code>IS<\/code> and <code>BEGIN<\/code> keywords.<\/li>\r\n\r\n\r\n\r\n<li><strong>Execution section<\/strong> is where you place the executable statements. It&#8217;s between the <code>BEGIN<\/code> and <code>END<\/code> keywords. Unlike a procedure, you must have at least one <code>RETURN<\/code> statement in the execution section.<\/li>\r\n\r\n\r\n\r\n<li><strong>Exception-handling section <\/strong>is where you put the <a href=\"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-exception\/\">exception<\/a> handler code.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>Only the executable section is mandatory, whereas the other sections are optional.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id='plsql-function-example'>PL\/SQL function example <a href=\"#plsql-function-example\" class=\"anchor\" id=\"plsql-function-example\" title=\"Anchor for PL\/SQL function example\">#<\/a><\/h2>\r\n\r\n\r\n\r\n<p>We&#8217;ll use the <code>orders<\/code> and <code>order_items<\/code> from the <a href=\"https:\/\/www.oracletutorial.com\/getting-started\/oracle-sample-database\/\">sample database<\/a>:<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"374\" height=\"145\" class=\"wp-image-649\" src=\"https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2017\/08\/orders_order_items_tables.png\" alt=\"orders and order_items tables\" srcset=\"https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2017\/08\/orders_order_items_tables.png 374w, https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2017\/08\/orders_order_items_tables-300x116.png 300w\" sizes=\"auto, (max-width: 374px) 100vw, 374px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>The following example creates a function that calculates total sales by year:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\"><span class=\"hljs-keyword\">CREATE<\/span> <span class=\"hljs-keyword\">OR REPLACE<\/span> <span class=\"hljs-keyword\">FUNCTION<\/span> get_total_sales(\r\n    in_year PLS_INTEGER\r\n) \r\n<span class=\"hljs-keyword\">RETURN<\/span> NUMBER\r\n<span class=\"hljs-keyword\">IS<\/span>\r\n    l_total_sales NUMBER := <span class=\"hljs-number\">0<\/span>;\r\n<span class=\"hljs-keyword\">BEGIN<\/span>\r\n    <span class=\"hljs-comment\">-- get total sales<\/span>\r\n    <span class=\"hljs-keyword\">SELECT<\/span> SUM(unit_price * quantity)\r\n    <span class=\"hljs-keyword\">INTO<\/span> l_total_sales\r\n    <span class=\"hljs-keyword\">FROM<\/span> order_items\r\n    <span class=\"hljs-keyword\">INNER<\/span> <span class=\"hljs-keyword\">JOIN<\/span> orders <span class=\"hljs-keyword\">USING<\/span> (order_id)\r\n    <span class=\"hljs-keyword\">WHERE<\/span> status = <span class=\"hljs-string\">'Shipped'<\/span>\r\n    <span class=\"hljs-keyword\">GROUP<\/span> <span class=\"hljs-keyword\">BY<\/span> EXTRACT(<span class=\"hljs-type\">YEAR<\/span> <span class=\"hljs-keyword\">FROM<\/span> order_date)\r\n    <span class=\"hljs-keyword\">HAVING<\/span> EXTRACT(<span class=\"hljs-type\">YEAR<\/span> <span class=\"hljs-keyword\">FROM<\/span> order_date) = in_year;\r\n    \r\n    <span class=\"hljs-comment\">-- return the total sales<\/span>\r\n    <span class=\"hljs-keyword\">RETURN<\/span> l_total_sales;\r\n<span class=\"hljs-keyword\">END<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<p>To compile the function in Oracle SQL Developer, you click the <strong>Run Statement<\/strong> button as shown in the picture below:<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"404\" height=\"422\" class=\"wp-image-2895\" src=\"https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2019\/08\/oracle-function-compile.png\" alt=\"oracle function compile\" srcset=\"https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2019\/08\/oracle-function-compile.png 404w, https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2019\/08\/oracle-function-compile-287x300.png 287w\" sizes=\"auto, (max-width: 404px) 100vw, 404px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Once the function is compiled successfully, you can find it under the <strong>Functions<\/strong> node:<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"282\" height=\"357\" class=\"wp-image-2896\" src=\"https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2019\/08\/oracle-function-list.png\" alt=\"oracle function list\" srcset=\"https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2019\/08\/oracle-function-list.png 282w, https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2019\/08\/oracle-function-list-237x300.png 237w\" sizes=\"auto, (max-width: 282px) 100vw, 282px\" \/><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id='calling-a-plsql-function'>Calling a PL\/SQL function <a href=\"#calling-a-plsql-function\" class=\"anchor\" id=\"calling-a-plsql-function\" title=\"Anchor for Calling a PL\/SQL function\">#<\/a><\/h2>\r\n\r\n\r\n\r\n<p>You use a function anywhere that you use an expression of the same type. You can call a function in various places, such as:<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id='plsql-block'>PL\/SQL block <a href=\"#plsql-block\" class=\"anchor\" id=\"plsql-block\" title=\"Anchor for PL\/SQL block\">#<\/a><\/h3>\r\n\r\n\r\n\r\n<p>The following anonymous block calls the get_total_sales function to retrieve the total sales in 2017:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\"><span class=\"hljs-keyword\">SET<\/span> SERVEROUTPUT <span class=\"hljs-keyword\">ON<\/span>;\r\n\r\n<span class=\"hljs-keyword\">DECLARE<\/span>\r\n    l_sales NUMBER := <span class=\"hljs-number\">0<\/span>;\r\n<span class=\"hljs-keyword\">BEGIN<\/span>\r\n    l_sales := get_total_sales (<span class=\"hljs-number\">2017<\/span>);\r\n    DBMS_OUTPUT.PUT_LINE(<span class=\"hljs-string\">'Sales 2017: '<\/span> || l_sales);\r\n<span class=\"hljs-keyword\">END<\/span>;\r\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<p>Output:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">Sales<\/span> 2017: 14408188<span class=\"hljs-selector-class\">.68<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<p>How it works:<\/p>\r\n\r\n\r\n\r\n<p>First, declare a variable that will store the sales in 2017:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">l_sales NUMBER := 0;<\/code><\/span><\/pre>\r\n\r\n\r\n<p>Second, call the <code>get_total_sales<\/code> function by passing <code>2017<\/code> to its parameter and assign the return value to the <code>l_sales<\/code> variable:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">l_sales := get_total_sales (2017);<\/code><\/span><\/pre>\r\n\r\n\r\n<p>Third, display the value of the l_sales variable:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">DBMS_OUTPUT.PUT_LINE(<span class=\"hljs-string\">'Sales 2017: '<\/span> || l_sales);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id='boolean-expressions'>Boolean expressions <a href=\"#boolean-expressions\" class=\"anchor\" id=\"boolean-expressions\" title=\"Anchor for Boolean expressions\">#<\/a><\/h3>\r\n\r\n\r\n\r\n<p>The following example shows how to use the <code>get_total_sales<\/code> function in a Boolean expression:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\"><span class=\"hljs-keyword\">SET<\/span> SERVEROUTPUT <span class=\"hljs-keyword\">ON<\/span>;\r\n\r\n<span class=\"hljs-keyword\">BEGIN<\/span>\r\n    <span class=\"hljs-keyword\">IF<\/span> get_total_sales (<span class=\"hljs-number\">2017<\/span>) &gt; <span class=\"hljs-number\">10000000<\/span> <span class=\"hljs-keyword\">THEN<\/span>\r\n        DBMS_OUTPUT.PUT_LINE(<span class=\"hljs-string\">'Sales 2017 is above target'<\/span>);\r\n    <span class=\"hljs-keyword\">END<\/span> <span class=\"hljs-keyword\">IF<\/span>;\r\n<span class=\"hljs-keyword\">END<\/span>;\r\n\r\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<p>Output:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Sales 2017 is above target<\/code><\/span><\/pre>\r\n\r\n\r\n<p>How it works:<\/p>\r\n\r\n\r\n\r\n<p>First, call the get_total_sales function to retrieve the sales in 2017 and compare its return value with 10,000,000. If the sales amount in 2017 is greater than 10 million, display a message:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">IF get_total_sales (<span class=\"hljs-number\">2017<\/span>) &gt; <span class=\"hljs-number\">10000000<\/span> THEN\r\n   DBMS_OUTPUT.PUT_LINE(<span class=\"hljs-string\">'Sales 2017 is above target'<\/span>);\r\nEND IF;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id='sql-statements'>SQL statements <a href=\"#sql-statements\" class=\"anchor\" id=\"sql-statements\" title=\"Anchor for SQL statements\">#<\/a><\/h3>\r\n\r\n\r\n\r\n<p>The following example calls the <code>get_total_sales<\/code> function in a <code>SELECT<\/code> statement:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\"><span class=\"hljs-keyword\">SELECT<\/span>\r\n    get_total_sales(<span class=\"hljs-number\">2017<\/span>) sales_2017\r\n<span class=\"hljs-keyword\">FROM<\/span>\r\n    dual;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<p>Output:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">SALES_2017<\/span>\r\n<span class=\"hljs-selector-tag\">----------<\/span>\r\n14408188<span class=\"hljs-selector-class\">.7<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id='editing-a-function'>Editing a function <a href=\"#editing-a-function\" class=\"anchor\" id=\"editing-a-function\" title=\"Anchor for Editing a function\">#<\/a><\/h2>\r\n\r\n\r\n\r\n<p>To edit and recompile an existing function, you follow these steps:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>First, click the function name that you want to edit<\/li>\r\n\r\n\r\n\r\n<li>Second, edit the code.<\/li>\r\n\r\n\r\n\r\n<li>Third, click the <strong>Compile<\/strong> menu option to recompile the code.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"769\" height=\"363\" class=\"wp-image-2897\" src=\"https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2019\/08\/oracle-function-edit-and-recompile.png\" alt=\"oracle function edit and recompile\" srcset=\"https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2019\/08\/oracle-function-edit-and-recompile.png 769w, https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2019\/08\/oracle-function-edit-and-recompile-300x142.png 300w, https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2019\/08\/oracle-function-edit-and-recompile-768x363.png 768w\" sizes=\"auto, (max-width: 769px) 100vw, 769px\" \/><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id='removing-a-function'>Removing a function <a href=\"#removing-a-function\" class=\"anchor\" id=\"removing-a-function\" title=\"Anchor for Removing a function\">#<\/a><\/h2>\r\n\r\n\r\n\r\n<p>The <code>DROP FUNCTION<\/code> deletes a function from the Oracle Database. Here&#8217;s the syntax for deleting a function:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\"><span class=\"hljs-keyword\">DROP<\/span> <span class=\"hljs-keyword\">FUNCTION<\/span> function_name;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<p>In this syntax, you specify the name of the function you want to drop after the <code>DROP FUNCTION<\/code> keywords.<\/p>\r\n\r\n\r\n\r\n<p>For example, the following statement drops the <code>GET_TOTAL_SALES<\/code> function:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\"><span class=\"hljs-keyword\">DROP<\/span> <span class=\"hljs-keyword\">FUNCTION<\/span> get_total_sales;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<p>Oracle issued a message indicating that the function <code>GET_TOTAL_SALES<\/code> has been dropped:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\"><span class=\"hljs-keyword\">Function<\/span> GET_TOTAL_SALES dropped.<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<p>If you want to drop a function using SQL Developer, you can follow these steps:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>First, right-click on the function name you want to delete.<\/li>\r\n\r\n\r\n\r\n<li>Second, choose the Drop&#8230; menu option.<\/li>\r\n\r\n\r\n\r\n<li>Third, click the <strong>Apply<\/strong> button to confirm the deletion.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"392\" height=\"457\" class=\"wp-image-2898\" src=\"https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2019\/08\/oracle-function-drop.png\" alt=\"oracle function drop\" srcset=\"https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2019\/08\/oracle-function-drop.png 392w, https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2019\/08\/oracle-function-drop-257x300.png 257w\" sizes=\"auto, (max-width: 392px) 100vw, 392px\" \/><\/figure>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"324\" height=\"304\" class=\"wp-image-2899\" src=\"https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2019\/08\/oracle-function-drop-confirmation.png\" alt=\"\" srcset=\"https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2019\/08\/oracle-function-drop-confirmation.png 324w, https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2019\/08\/oracle-function-drop-confirmation-300x281.png 300w\" sizes=\"auto, (max-width: 324px) 100vw, 324px\" \/><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id='summary'>Summary <a href=\"#summary\" class=\"anchor\" id=\"summary\" title=\"Anchor for Summary\">#<\/a><\/h2>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>A function is a reusable code block that performs a task and returns a single value.<\/li>\r\n<\/ul>\r\n<div class=\"helpful-block-content\" data-title=\"\">\n\t<header>\n\t\t<div class=\"wth-question\">Was this tutorial helpful?<\/div>\n\t\t<div class=\"wth-thumbs\">\n\t\t\t<button\n\t\t\t\tdata-post=\"1580\"\n\t\t\t\tdata-post-url=\"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-function\/\"\n\t\t\t\tdata-post-title=\"PL\/SQL Function\"\n\t\t\t\tdata-response=\"1\"\n\t\t\t\tclass=\"wth-btn-rounded wth-yes-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t\tclass=\"feather feather-thumbs-up block w-full h-full\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> Yes <\/span>\n\t\t\t<\/button>\n\n\t\t\t<button\n\t\t\t\tdata-response=\"0\"\n\t\t\t\tdata-post=\"1580\"\n\t\t\t\tdata-post-url=\"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-function\/\"\n\t\t\t\tdata-post-title=\"PL\/SQL Function\"\n\t\t\t\tclass=\"wth-btn-rounded wth-no-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> No <\/span>\n\t\t\t<\/button>\n\t\t<\/div>\n\t<\/header>\n\n\t<div class=\"wth-form hidden\">\n\t\t<div class=\"wth-form-wrapper\">\n\t\t\t<div class=\"wth-title\"><\/div>\n\t\t\t\n\t\t\t<textarea class=\"wth-message\"><\/textarea>\n\n\t\t\t<button class=\"btn btn-primary wth-btn-submit\">Send<\/button>\n\t\t\t<button class=\"btn wth-btn-cancel\">Cancel<\/button>\n\t\t\n\t\t<\/div>\n\t<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>This tutorial shows you how to develop a PL\/SQL function and how to call it in various places e.g., an assignment statement and an SQL statement.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1418,"menu_order":28,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1580","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PL\/SQL Function<\/title>\n<meta name=\"description\" content=\"How to develop a PL\/SQL function and call it in various places such as an assignment statement and an SQL statement.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-function\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PL\/SQL Function\" \/>\n<meta property=\"og:description\" content=\"How to develop a PL\/SQL function and call it in various places such as an assignment statement and an SQL statement.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-function\/\" \/>\n<meta property=\"og:site_name\" content=\"Oracle Tutorial\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-26T13:56:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2017\/08\/orders_order_items_tables.png\" \/>\n\t<meta property=\"og:image:width\" content=\"374\" \/>\n\t<meta property=\"og:image:height\" content=\"145\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.oracletutorial.com\\\/plsql-tutorial\\\/plsql-function\\\/\",\"url\":\"https:\\\/\\\/www.oracletutorial.com\\\/plsql-tutorial\\\/plsql-function\\\/\",\"name\":\"PL\\\/SQL Function\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.oracletutorial.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.oracletutorial.com\\\/plsql-tutorial\\\/plsql-function\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.oracletutorial.com\\\/plsql-tutorial\\\/plsql-function\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.oracletutorial.com\\\/wp-content\\\/uploads\\\/2017\\\/08\\\/orders_order_items_tables.png\",\"datePublished\":\"2017-11-28T06:34:48+00:00\",\"dateModified\":\"2025-05-26T13:56:04+00:00\",\"description\":\"How to develop a PL\\\/SQL function and call it in various places such as an assignment statement and an SQL statement.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.oracletutorial.com\\\/plsql-tutorial\\\/plsql-function\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.oracletutorial.com\\\/plsql-tutorial\\\/plsql-function\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.oracletutorial.com\\\/plsql-tutorial\\\/plsql-function\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.oracletutorial.com\\\/wp-content\\\/uploads\\\/2017\\\/08\\\/orders_order_items_tables.png\",\"contentUrl\":\"https:\\\/\\\/www.oracletutorial.com\\\/wp-content\\\/uploads\\\/2017\\\/08\\\/orders_order_items_tables.png\",\"width\":374,\"height\":145,\"caption\":\"orders and order_items tables\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.oracletutorial.com\\\/plsql-tutorial\\\/plsql-function\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.oracletutorial.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PL\\\/SQL Tutorial\",\"item\":\"https:\\\/\\\/www.oracletutorial.com\\\/plsql-tutorial\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"PL\\\/SQL Function\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.oracletutorial.com\\\/#website\",\"url\":\"https:\\\/\\\/www.oracletutorial.com\\\/\",\"name\":\"Oracle Tutorial\",\"description\":\"Oracle Tutorial\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.oracletutorial.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PL\/SQL Function","description":"How to develop a PL\/SQL function and call it in various places such as an assignment statement and an SQL statement.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-function\/","og_locale":"en_US","og_type":"article","og_title":"PL\/SQL Function","og_description":"How to develop a PL\/SQL function and call it in various places such as an assignment statement and an SQL statement.","og_url":"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-function\/","og_site_name":"Oracle Tutorial","article_modified_time":"2025-05-26T13:56:04+00:00","og_image":[{"width":374,"height":145,"url":"https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2017\/08\/orders_order_items_tables.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-function\/","url":"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-function\/","name":"PL\/SQL Function","isPartOf":{"@id":"https:\/\/www.oracletutorial.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-function\/#primaryimage"},"image":{"@id":"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-function\/#primaryimage"},"thumbnailUrl":"https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2017\/08\/orders_order_items_tables.png","datePublished":"2017-11-28T06:34:48+00:00","dateModified":"2025-05-26T13:56:04+00:00","description":"How to develop a PL\/SQL function and call it in various places such as an assignment statement and an SQL statement.","breadcrumb":{"@id":"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-function\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-function\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-function\/#primaryimage","url":"https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2017\/08\/orders_order_items_tables.png","contentUrl":"https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2017\/08\/orders_order_items_tables.png","width":374,"height":145,"caption":"orders and order_items tables"},{"@type":"BreadcrumbList","@id":"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-function\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.oracletutorial.com\/"},{"@type":"ListItem","position":2,"name":"PL\/SQL Tutorial","item":"https:\/\/www.oracletutorial.com\/plsql-tutorial\/"},{"@type":"ListItem","position":3,"name":"PL\/SQL Function"}]},{"@type":"WebSite","@id":"https:\/\/www.oracletutorial.com\/#website","url":"https:\/\/www.oracletutorial.com\/","name":"Oracle Tutorial","description":"Oracle Tutorial","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.oracletutorial.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/www.oracletutorial.com\/wp-json\/wp\/v2\/pages\/1580","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.oracletutorial.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.oracletutorial.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.oracletutorial.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.oracletutorial.com\/wp-json\/wp\/v2\/comments?post=1580"}],"version-history":[{"count":0,"href":"https:\/\/www.oracletutorial.com\/wp-json\/wp\/v2\/pages\/1580\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.oracletutorial.com\/wp-json\/wp\/v2\/pages\/1418"}],"wp:attachment":[{"href":"https:\/\/www.oracletutorial.com\/wp-json\/wp\/v2\/media?parent=1580"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}