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

推荐订阅源

博客园 - 叶小钗
V
Visual Studio Blog
雷峰网
雷峰网
J
Java Code Geeks
博客园 - 三生石上(FineUI控件)
人人都是产品经理
人人都是产品经理
MyScale Blog
MyScale Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
B
Blog RSS Feed
C
Check Point Blog
博客园 - Franky
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 【当耐特】
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
V2EX
D
Docker
IT之家
IT之家
博客园 - 聂微东
腾讯CDC
U
Unit 42
Microsoft Security Blog
Microsoft Security Blog
The Cloudflare Blog

博客园 - 系咪噶

[JAVA基础]流文件读写文件编码转换 最近转战东软 apache 新建虚拟机 +Zend Framework建立 Apache + php 配置 php基础教程之PHP面向对象技术(全面讲解) 今日无事,将一同志之毕设完结 SQL查询基本练习1:(作业) SQL Server 高级应用(周六讲座) 面向对象之CoreJava(第一课) CVS的使用(一课时) PL/SQL第三课(学习笔记) PL/SQL第二课(学习笔记) PL/SQL第一课(学习笔记) Oracle第五课(学习笔记) Oracle第四课(学习笔记) 全步骤安装mysql SQL Server 存储过程的分页 无法连接到Visual Studio 的Localhost Web服务器 Oracle第三课(学习中笔记)
PL/SQL第二课(作业)
系咪噶 · 2008-08-15 · via 博客园 - 系咪噶

作业讲解

1.1、查询语句
SELECT b.first_name
FROM s_emp a,s_emp b
WHERE a.manager_id = b.id--manager_id作为外键,与 b 表里的id 连接
AND a.id = 5;
1.2、存储过程
CREATE OR REPLACE PROCKDURE proc_GetManager(
    p_id IN s_emp.id%TYPE,
    p_name OUT s_emp.first_name%TYPE
)
BEGIN
/*
    SELECT first_name
    FROM s_emp
    WHERE manager_id = NULL;*/
    SELECT b.first_name
        INTO p_name
    FROM  s_emp a, s_emp b
    WHERE a.manager_id = b.id
        AND a.id = p_id;
END
1.3、调用传递
DECLARE
     v_first_name s_emp.first_name%TYPE;
BEGIN
    proc_GetManager(3,v_fisrt_name);
    DBMS_OUTPUT.PUT_LINE('v_fisrt_name = '||v_first_name)
END

2.1、

SELECT a.id, a.first_name, a.salary
    FROM s_emp a, s_dept b
WHERE a.dept_id = b.id
    AND b.region_id = 2;

2.2、
CREATE OR REPLACE FUNCTION fun_getDept(
    p_rid s_region.id%TYPE
    RETURN s_dept.name%TYPE)
AS
    v_dept s_dept.name%TYPE
 CURSOR cur_emp IS
    SELECT name
    from s_emp a, s_dept b
    where a. dept_id = b.id
     and b.region_id = p_ id
    ORDERby salary DESC;
BEGIN
    OPEN cur_emp;
    FETCH cur_emp INTO fun_getDept();
    CLOSE cur_emp;
END

2.3
DECLARE
    v_dept s_dept.name%TYPE;
begin
    v_dept := fun_getDept(2);
    DBMS_OUTPUT.PUT_LINE(v_dept);
end