oracle怎么带参数 oracle数据库参数

ORACLE中如何为存储过程传递参数?

第一种:只读。参数是只读的,不能修改,即调用时传递进来的是常量,或者变量(但变量不能在存储过程中修改)。通常select及DML类型的存储过程传递的是in类型的参数。

专注于为中小企业提供成都网站设计、做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业合阳免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

第二种:只写。忽略调用语句传递的任何参数,并在函数(过程)内部给这些参数赋值,因此是只写的。(这种情况是在函数或过程内部给参数重新赋值,但重新赋值后的参数是无法被外部调用的(好像游标类型的参数除外))

CREATE OR REPLACE  PROCEDURE "SCOTT"."SWAP" (firstValue out

number, secondValue out  number) is

temp number;

begin

temp := firstValue;

firstValue := secondValue;

secondValue := temp;

end swap;

外部调用:

set serveroutput on;

declare

firstVal number;

secondVal number;

begin

firstVal := 10;

secondVal := 20;

scott.swap(firstVal,secondVal);

dbms_output.put_line('first is ' || firstVal);

dbms_output.put_line('second is ' || secondVal);

end;

无法在外部访问到firstValue与secondValue的值。此时打印出的结果为:

first is

second is

第三种:读或写。这可以完全控制参数,读取传递的参数的值。可以再函数(过程)内部修改参数的值,在退出函数(过程)后,这些参数被赋给在函数内部写入的值,这样就可以返回多个值。(即入口参数写入值后,可以传递到函数(过程)的外部,供外部调用的时候使用)

ps:函数中的返回值为如下几种:

char;  varchar2; number; integer; date; boolean; table; record

SQL CREATE OR REPLACE PROCEDURE HelloWorld2 (

2    p_user_name IN     VARCHAR2,

3    p_out_val   OUT    VARCHAR2,

4    p_inout_val IN OUT VARCHAR2

5 ) AS

6 BEGIN

7     dbms_output.put_line('Hello ' || p_user_name || p_inout_val || '!');

8     p_out_val := 'A';

9     p_inout_val := 'B';

10 END HelloWorld2;

11 /

Procedure created.

SQL DECLARE

2    p_outval VARCHAR2(10);

3    p_inoutval VARCHAR2(10) := '~Hi~';

4 BEGIN

5    HelloWorld2('Edward', p_outval, p_inoutval);

6

7    dbms_output.put_line('p_outval=' || p_outval);

8    dbms_output.put_line('p_inoutval=' || p_inoutval);

9 END;

10 /

Hello Edward~Hi~!

p_outval=A

p_inoutval=B

PL/SQL procedure successfully completed.

oracle 中用什么命令执行一个带参数的存储过程

具体如下:

1、第一步,创建一个新的存储过程,见下图,转到下面的步骤。

2、第二步,完成上述步骤后,修改存储过程。

此存储过程具有一个输入参数(pid)和一个输出参数,即通过用户id查询用户名并返回名称,见下图,转到下面的步骤。

3、第三步,完成上述步骤后,调试存储过程,找到新创建的存储过程,右键单击[test]按钮,见下图,转到下面的步骤。

4、第四步,完成上述步骤后,修改id值,然后单击左上角的“倒三角”按钮以开始调试,见下图,转到下面的步骤。

5、第五步,完成上述步骤后,按[CTRL +

N]进行单步调试,按[CTRL + O]单步调试,按[CTRL + T]退出调试,或者单击调试工具进行调试,见下图,转到下面的步骤。

6、第六步,完成上述步骤后,可以在窗口底部输入变量名称,以观察变量的变化,见下图,转到下面的步骤。

7、第七步,完成上述步骤后,可以查看调试结果,见下图。这样,就解决了这个问题了。

oracle带参(传入,传出)的存储过程怎么执行

1、新建存储过程,Create or Replace  Procedure CHK_SYS_EMP 检查系统工号。

2、定义参数及变量:(TREV IN VARCHAR2,TRES OUT VARCHAR2) IS C_EMP VARCHAR2(25)。

3、存储过程框架用Begin开始,End结束。

4、查看需要调用表的结构以及相关字段。会用到表中的 EMP_NO ENABLED。

5、存储过程按需添加SQL语句。

6、程序运行测试OK。

oracle怎么调用带参数的存储过程

sqlplus或者PL/SQL SQL窗口输入(单独调用存储过程):无参数EXEC 过程名;或者BEGIN过程名END; IN 参数EXEC 过程名(入参数..);或者BEGIN过程名(入参数...)END; OUT参数,IN OUT参数variable 绑定变量名 数据类型; //定义一个变量接收出参数的值;EXEC 过程名(:绑定变量名);

vb.net 如何使oracle语句带参数

oracle语句带参数查询在vb.net中的应用。

1、创建数据库连接:

Dim myConnection As OleDbConnection

Dim myOracleDataAdapter As OleDbDataAdapter

myConnection = New OleDbConnection("Provider=OraOLEDB.Oracle.1;Data _

Source=OraDb_192.168.1.148;user id=scott;password=tiger")

myOracleDataAdapter = New OleDbDataAdapter("select * from user_tables", myConnection)

Dim myDataSet As DataSet = New DataSet()

Dim myDataRow As DataRow

myOracleDataAdapter.Fill(myDataSet, "user_tables")

Console.WriteLine(myDataSet.Tables("dept").Rows(0)(0))

Console.WriteLine(myDataSet.Tables("user_tables").Columns(0).ColumnName)

Console.ReadLine();

2、如果用户按照上面所示输入 CLERK,则数据库接收的命令文本如下:

select count(ename) from emp where job = 'CLERK'

执行结果如下:

cmd.CommandText = "select count(ename) from emp where " _

+ "job = '" + TextBox1.Text + "'" ' VB.NET

ORACLE中如何为存储过程传递参数

给你一个 传递参数的例子

SQL CREATE OR REPLACE PROCEDURE HelloWorld2 (

2 p_user_name IN VARCHAR2,

3 p_out_val OUT VARCHAR2,

4 p_inout_val IN OUT VARCHAR2

5 ) AS

6 BEGIN

7 dbms_output.put_line('Hello ' || p_user_name || p_inout_val || '!');

8 p_out_val := 'A';

9 p_inout_val := 'B';

10 END HelloWorld2;

11 /

Procedure created.

SQL DECLARE

2 p_outval VARCHAR2(10);

3 p_inoutval VARCHAR2(10) := '~Hi~';

4 BEGIN

5 HelloWorld2('Edward', p_outval, p_inoutval);

6

7 dbms_output.put_line('p_outval=' || p_outval);

8 dbms_output.put_line('p_inoutval=' || p_inoutval);

9 END;

10 /

Hello Edward~Hi~!

p_outval=A

p_inoutval=B

PL/SQL procedure successfully completed.

SQL


本文标题:oracle怎么带参数 oracle数据库参数
文章地址:http://ybzwz.com/article/hpiceo.html