问题描述
我想马上说我使用翻译,因为我只会说俄语,但是会说一点英语。
我最近找到了一份工作,据说我需要用sql进行一些简单的查询。
但是,出了点问题,我对自己至少知道有些东西失去了信心。而且我不想丢掉我的工作。
任务: 我的老板告诉我要做一个听起来像这样的任务: ID出现了,您需要输入ID并获取客户的地址。
由于我的雇主使用Oracle,所以我认为此任务是通过PL / sql完成的。还是使用sql在不了解PL / sql编程语言的情况下完成?
还请告诉我,sql和PL / sql中使用的函数,过程,游标之间是否有区别?
我之所以问这个问题,是因为我的老板告诉我要阅读它们,而当我寻找机会和提示来完成这项任务时,我发现这些主题都包含在PL / sql中。
>不幸的是,我还没有阅读站点规则,因为根本没有时间处理所有事情,但是如果您可以在此处使用指向资源或书籍的链接,请直接给我指导。
抱歉,如果您不清楚我的问题,任务和故事。
一旦我掌握了一切,我将开始学习英语,不仅要成为世界的一部分,而且要成为这个社区的正式成员。
祝您一切顺利。拥抱。
解决方法
翻译清楚。
PL / SQL是SQL的过程语言(PL / SQL)。
用最简单的术语(我认为这可以帮助您作为初学者理解):
-
过程用于从一个或多个表中插入,更新,删除,选择数据。
-
函数用于返回值。
在您的情况下,我将创建一个具有ID参数的过程,然后在该过程中,我将使用该参数作为条件从表中查询( select )数据使用PL / SQL。
,尽管Oracle 10g是旧版软件,但我喜欢它的Documentation页,因此建议您仔细阅读一下。 (当然,请随时阅读与您的数据库版本有关的文档。)
在“最受欢迎”部分中,阅读
-
首先预订
- 概念以了解什么是Oracle
- SQL参考以学习SQL命令
- PL / SQL用户指南和参考以了解什么是PL / SQL(如果正确学习SQL,则学习PL / SQL会更容易) 我认为
- 应用程序开发人员指南-基本原理是超有用的
在完成任务时,您会得到一个:函数,该函数接受ID作为参数并返回地址。我没有您的表,因此我将使用Scott的示例架构及其EMP
表进行说明-我将传递员工编号并返回其工作。
SQL> select * from emp where deptno = 10;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------- ---------- ---------- ----------
7782 CLARK MANAGER 7839 09.06.81 2450 10
7839 KING PRESIDENT 17.11.81 10000 10
7934 MILLER CLERK 7782 23.01.82 1300 10
SQL> create or replace function f_emp (par_empno in emp.empno%type)
2 return emp.job%type
3 is
4 retval emp.job%type;
5 begin
6 select e.job
7 into retval
8 from emp e
9 where e.empno = par_empno;
10
11 return retval;
12
13 exception
14 when no_data_found then
15 return 'No such employee';
16 end;
17 /
Function created.
SQL> select f_emp(7782) result from dual;
RESULT
---------------------------------------------------------------------------------------------
MANAGER
SQL>