簡體   English   中英

如何在pl sql developer中運行sql函數

[英]how to run a sql function in pl sql developer

我是oracle新手。 我使用pl sql developer在oracle數據庫中創建了一個函數,並成功執行。 現在,我想通過查詢從同一pl sql開發人員運行該功能。 但它不能正常工作。 下面是我的功能。

create or replace function com.my_first_test_function(module_code out varchar2,                         
bpm_process_name out varchar2,module_name out varchar2,input in number)return number is
y_return number(1)
N_return varchar(200)
begin
if input='yes' then
Y_return :=select module_code ,bpm_process_name,module_name from com_tm_bpm_process_details;

if input='no' then nested_procedure_exception exception

但是當我嘗試使用以下查詢運行此功能時,它會拋出一些錯誤消息。 誰能告訴我如何從pl sql developer調用該函數。

select * from  com.my_first_test_function(java.sql.Types.VARCHAR,java.sql.Types.VARCHAR,java.sql.Types.VARCHAR,'yes')

在這里,我嘗試也沒有參數值,但仍然沒有用。

在SQL語句中調用函數的目的是計算一些返回值,並從參數中讀取信息。 因此,帶有OUT參數的函數在SQL中沒有意義。 如果您需要一些可以處理OUT參數的東西,則可以在PL / SQL塊中使用將變量作為OUT參數傳遞的過程。

關於調用FUNCTION,可以使用帶有變量的PL / SQL塊:

SQL> create or replace function f( n IN number) return number is
  2  begin
  3      return n * 2;
  4  end;
  5  /

Function created.

SQL> declare
  2      outNumber number;
  3  begin
  4      select f(10)
  5      into outNumber
  6      from dual;
  7      --
  8      dbms_output.put_line('outNumber: "' || outNumber || '"');
  9  end;
 10  /
outNumber: "20"

PL/SQL procedure successfully completed.

甚至直接在SQL查詢中調用它:

SQL> select f(10) from dual;

     F(10)
----------
        20

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM