2013-04-11 53 views
-1

刚开始做一些PL/SQL,我需要一些帮助创建我被分配到实践的过程:PL/SQL程序

创建一个具有两个输入的程序 - 名字和姓氏。该 程序应DBMS输出以下3行:

firstname surname (lowercase) 
FIRSTNAME SURNAME (uppercase) Firstname 
Surname (Initial uppercase) 

下面的PL/SQL函数可以用来帮助:

UPPER(VARCHAR2), LOWER(VARCHAR2), INITCAP(VARCHAR2) 

我到目前为止已经试过这样:

CREATE OR REPLACE PROCEDURE LabFourProc (firstname IN VARCHAR2, surname IN VARCHAR2) 
IS 
BEGIN 
    DBMS_OUTPUT.PUT_LINE(firstname, surnmame); 
END LabFourProc; 
/
+3

你尝试过什么到目前为止,因为你有3个你需要的功能。它是一个微不足道的程序,因为你已经被告知要使用三个函数。 – DazzaL 2013-04-11 11:19:20

+0

我到目前为止已经试过这样: “CREATE OR REPLACE PROCEDURE LabFourProc(名字 \t IN VARCHAR2,姓在VARCHAR2) IS BEGIN \t DBMS_OUTPUT.PUT_LINE(名字,surnmame); END LabFourProc; /” 显然它没有工作,但我很新! – user2252636 2013-04-11 11:24:11

+0

@ user2252636显示您的代码的最佳方式是您的问题下面的编辑链接。 PL/SQL有[全面文档](http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/toc.htm),可在线免费获取,过程的语法在[PL/SQL子程序部分](http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/subprograms.htm#i4079)。 – 2013-04-11 11:26:24

回答

1

伴侣我是新来这个问题,以及这个。尝试,如果这有助于

CREATE OR REPLACE PROCEDURE LabFourProc (firstname IN VARCHAR2, surname IN VARCHAR2) 
IS 
BEGIN 
DBMS_OUTPUT.ENABLE (1000000); 
DBMS_OUTPUT.PUT_LINE('Input Parameters:'|| firstname ||CHR(9)|| surname ||CHR(10)|| 
'Upper Name:' || upper(firstname)||CHR(9)||upper(surname)||CHR(10)|| 
'Lower Name:' || lower(firstname)||CHR(9)||lower(surname)||CHR(10)|| 
'First Leter Cap Name:' || initcap(firstname)||CHR(9)||initcap(surname)); 
END; 
/
0

您可以使用CONCAT()函数或||运算符来加入字符串。例如:

-- outputs "firstname surname" 
DBMS_OUTPUT.PUT_LINE(firstname || ' ' || surnmame); 
0
CREATE OR REPLACE PROCEDURE 
p1(fn varchar2, sn varchar2) 
is 
BEGIN 
DBMS_OUTPUT.PUT_LINE(lower(fn)||' '||lower(sn)||','||upper(fn)||' '||upper(sn)||','||initcap(fn)||' '||initcap(sn)); 
END; 

执行

EXEC P1('ANYA','ROMANOVA');