惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
F
Fortinet All Blogs
爱范儿
爱范儿
博客园 - Franky
MyScale Blog
MyScale Blog
罗磊的独立博客
博客园 - 三生石上(FineUI控件)
B
Blog
P
Proofpoint News Feed
IT之家
IT之家
宝玉的分享
宝玉的分享
D
DataBreaches.Net
S
SegmentFault 最新的问题
Microsoft Azure Blog
Microsoft Azure Blog
GbyAI
GbyAI
M
MIT News - Artificial intelligence
L
LangChain Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
月光博客
月光博客
雷峰网
雷峰网
Stack Overflow Blog
Stack Overflow Blog
量子位
V
V2EX
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

博客园 - TwinStudio

Stable Diffusion AI 绘画使用 chartGPT 是什么?如何使用chartGPT? ChatGPT指令大全(建议收藏) Vue3开发教程(一、学习Vue前需要了解的内容) mysql用mysqldump命令进行数据库备份与迁移 领导更喜欢的日报,长这样 Vue3快速上手,Vue3全解 MySQL优化常用的19种有效方法(推荐!) idea常用快捷键大全 MySQL的优化多种方法(至少15条) Cisco Systems VPN Client 显示不出 主界面 怎么点都打不开。我重装过了。又重新安装了。也没用 360也把他添加白名单 也显示不出= = - TwinStudio PL/SQL 工具中 TIMESTAMP 显示转换问题 基于Azkaban的任务定时调度实践 帆软报表开发步骤 Oracle归档日志分析 Oracle查询归档日志 帆软设置浏览内容宽度为屏幕宽度 JS修改下拉框控件的默认文字“不选” 帆软设置下拉框参数为空选择全部
oracle存储过程和存储函数sql
TwinStudio · 2022-05-18 · via 博客园 - TwinStudio

备注:oracle数据库表字段和表名最好都用大写,不然都要用双引号,比如:表名为:"Patient"     字段名为:"PatientID"

若是创建的时候用的表名为PATIENT和字段为PATIENTID   使用的时候就不用双引号

--带输出参数的存储过程
CREATE OR REPLACE PROCEDURE INSERTPATIENT(
SURNAME VARCHAR,
FIRSTNAME VARCHAR,
PREFIX VARCHAR,
SEX VARCHAR,
DOB DATE,
NEWPATIENTID OUT INT)
AS
BEGIN
SELECT SEQ_PATIENTID.NEXTVAL INTO NEWPATIENTID FROM DUAL;
INSERT INTO PATIENT (PATIENTID, FAMILYNAME, GIVENNAME, TITLE, GENDER, DATEOFBIRTH)
VALUES (NEWPATIENTID, SURNAME, FIRSTNAME, PREFIX, SEX, DOB);
END;

--带结果集的存储过程
CREATE OR REPLACE PROCEDURE LOOKUPPATIENT (
PATIENTID INT,
P_CURSOR OUT SYS_REFCURSOR)
AS
BEGIN
OPEN P_CURSOR FOR SELECT FAMILYNAME, GIVENNAME, TITLE, GENDER, DATEOFBIRTH FROM PATIENT WHERE PATIENTID = PATIENTID;
END;

--存储函数返回结果集
CREATE OR REPLACE FUNCTION LOOKUPPATIENTFUN(
PATIENTID INT)
RETURN SYS_REFCURSOR
AS
P_CURSOR SYS_REFCURSOR;
BEGIN
OPEN P_CURSOR FOR SELECT FAMILYNAME, GIVENNAME, TITLE, GENDER, DATEOFBIRTH FROM PATIENT WHERE PATIENTID = PATIENTID;
RETURN P_CURSOR;
END;