在Oracle的存储过程和函数中,其实IS和AS是同义词,没有什么区别。还有在自定义类型(TPYE)和包(PACKAGE)时,使用IS和AS也并没有什么区别。但是在创建视图(VIEW)时,只能使用AS而不能使用IS。在声明游标(CURSOR)时,只能使用IS而不能使用AS。
1、创建
存储过程
create or replace procedure test(var_name_1 in type,var_name_2 out type) as –声明变量(变量名 变量类型) begin –
存储过程
的执行体 end test; 打印出输入的时间信息 E.g: create or replace procedure test(workDate in Date) is begin dbms_output.putline('The input date is:'||to_date(workDate,'yyyy-mm-dd')); end test; 2、变量赋值 变量名 :
PL/SQL
中
的过程和
函数
(通常称为子程序)是PL/SQL块的一种特殊的类型,这种类型的子程序可以以编译的形式存放在数据库
中
,并为后续的程序块调用。
相同点: 完成特定功能的程序
不同点:是否用return语句返回值。
举个例子:
create or replace procedure PrintStudents(p_staffName in xgj_test.username%type) as
cursor c_testData is
select t.sal, t.comm from xgj_test t where t.username = p_staffName;
本文实例讲述了Python使用cx_
Oracle
调用
Oracle
存储过程
的方法。分享给大家供大家参考,具体如下:
这里主要测试在Python
中
通过cx_
Oracle
调用PL/SQL。
首先,在数据库端创建简单的
存储过程
。
create or replace procedure test_msg(i_user in varchar2, o_msg out varchar2) is
begin
o_msg := i_user ||', Good Morning!';
然后,开始在Python命令行
中
进行
存储过程
调用。
import cx_
Oracle
as cx
conn = cx
Oracle
不像SQLServer那样在
存储过程
中
用Select就可以返回结果集,而是通过Out型的参数进行结果集返回的。实际上是利用REF CURSOR 代码如下: –procedure返回记录集: ———————-声明一个Package————– CREATE OR REPLACE PACKAGE pkg_test AS TYPEmyrctypeIS REF CURSOR; PROCEDURE get_r(p_id NUMBER,p_rc OUT myrctype); –Package
中
声明名为get 的Procedure(只有接口没内容) END pkg_test; —————–声明P
在
存储过程
(PROCEDURE)和
函数
(FUNCTION)
中
没有
区别
;
在视图(VIEW)
中
只能用AS不能用IS;
在游标(CURSOR)
中
只能用IS不能用AS。
总结:便于好记,游标
中
用is,其他都用as
oracle
数据库
中
is和as关键字的
区别
,如下所示:
is和as关键字被用于
oracle
的sql脚本编写
中
,例:创建
存储过程
、
函数
、类型、包、视图、游标,在
oracle
中
创建
函数
、
存储过程
、自定义类型、包(package)时,既可以is也可以使用as,两者在功能上没有
区别
as 和is关键字的主要应用
区别
如下:1.在创建视图时,只能as关键字2.在游标的定义时,只可以使用is而不能使用as关键字
para3 in out varchar2
v_name varchar2(20); /*变量声明块:紧跟着的as (is )关键字,可以理解为pl/sql的declare关键字,用于声明变量。 */
begin
v_name :='zh...
1、在创建
存储过程
(PROCEDURE)/
函数
(FUNCTION),以及自定义类型(TPYE)和包(PACKAGE)时,使用AS和IS无
区别
。
2、在创建视图(VIEW)时,只能使用AS而不能使用IS。
3、在声明游标(CURSOR)
create or replace procedure imp_person_medical(v_t_table_name varchar2,v_result out varchar2) as
参数:v_t_table_name 临时数据表
v_sql varchar2(2000);
v_error_count number;
begin
AS和IS是
ORACLE
为了方便而设置的同义词。
1、在创建
存储过程
(PROCEDURE)/
函数
(FUNCTION),以及自定义类型(TPYE)和包(PACKAGE)时,使用AS和IS无
区别
。
2、在创建视图(VIEW)时,只能使用AS而不能使用IS。
3、在声明游标(CURSOR)时
在
存储过程
(PROCEDURE)和
函数
(FUNCTION)
中
两者都可以使用,但是有
区别
:使用IS 将无法使用调试模式调试该
存储过程
(
函数
)
在视图(VIEW)
中
只能用AS不能用IS;
在游标(CURSOR)
中
只能用IS不能用AS。...
create or replace function ISFONDYEAR(EDATE VARCHAR2) return varchar2 is
RET VARCHAR2(50);
N_YEAR NUMBER;
begin
--判断是否是闰年
select TO_NUMBER(to_char(to_date(EDATE, 'YYYY/MM'), 'YYYY'))
IN...
```sql
CREATE [OR REPLACE] FUNCTION function_name
(parameter1 [IN | OUT | IN OUT] data_type1,
parameter2 [IN | OUT | IN OUT] data_type2,
parameterN [IN | OUT | IN OUT] data_typeN)
RETURN return_data_type
[DETERMINISTIC]
[AUTHID {DEFINER | CURRENT_USER}]
{IS | AS}
[PRAGMA AUTONOMOUS_TRANSACTION;]
BEGIN
--
函数
体逻辑
RETURN return_value;
[EXCEPTION
-- 异常处理逻辑]
END [function_name];
其
中
,关键字说明如下:
- `CREATE FUNCTION`: 创建一个
函数
。
- `OR REPLACE` (可选): 如果
函数
已存在,则替换原有
函数
。
- `function_name`:
函数
的名称。
- `parameter1`, `parameter2`, ..., `parameterN`:
函数
的参数列表。
- `[IN | OUT | IN OUT]`: 参数的传入/传出方式。
- `data_type1`, `data_type2`, ..., `data_typeN`: 参数的数据类型。
- `RETURN return_data_type`:
函数
返回值的数据类型。
- `[DETERMINISTIC]` (可选): 指定
函数
是否是确定性的,即对于相同的输入参数,是否总是返回相同的结果。
- `[AUTHID {DEFINER | CURRENT_USER}]` (可选): 指定
函数
的执行权限。
- `{IS | AS}`:
函数
体开始的标识。
- `[PRAGMA AUTONOMOUS_TRANSACTION;]` (可选): 指定
函数
是否是自主事务。
- `BEGIN`:
函数
体的开始。
- `RETURN return_value;`: 返回
函数
结果。
- `[EXCEPTION ...]` (可选): 异常处理逻辑。
- `END [function_name];`:
函数
体的结束。
注意,以上是一般的存储
函数
格式,在实际使用
中
,可以根据具体需求进行相应的调整和扩展。
Springboot配置druid报错Failed to bind properties under 'spring.datasource' to javax.sql.DataSource
IMP导入数据库时报缓冲区长度不够的解决方案