2016-08-15 7 views
-2
create or replace PROCEDURE Getstudentname(
    @firstname varchar(20), 
    @lastname varchar (20), 
    @e_mail varchar(20) 
) 
as 
begin 
    insert into TBL_STUDENTS(fanme, lname, email) 
    values(@firstname, @lastname, @e_mail); 
end; 

この手順のエラーは何ですか?OracleのストアドプロシージャERROR

手順GETSTUDENTNAME

エラーコンパイル:

check compiler log

をそして、このSQLクエリも与えて動作していない:

Error report - SQL Error: ORA-00936: missing expression 00936. 00000 - "missing expression" *Cause:
*Action:

+0

表tbl_Students ( ID int型、fanmeのVARCHAR(20)、LNAMEのVARCHAR(20)、電子メールVARCHAR(20) )を作成します。 – RAHUL

答えて

1

この

create or replace PROCEDURE Getstudentname(
firstname in varchar2, 
lastname in varchar2, 
e_mail in varchar2 
) 
as 
begin 
insert into TBL_STUDENTS(fanme,lname,email)values(firstname,lastname,e_mail); 
end; 
+0

http://www.codeproject.com/Articles/126898/Sql-Server-How-To-Write-a-Stored-Procedure-in-SQL – RAHUL

1

は標準を修正してみてください

CREATE TABLE tbl_Students 
(id int, Fname varchar(20), Lname varchar(20),Email varchar(20)); 


create or replace PROCEDURE Getstudentname(
    firstname in tbl_students.fname%TYPE, 
    lastname in tbl_students.lname%TYPE, 
    e_mail in tbl_students.email%TYPE 
) 
as 
begin 
    insert into TBL_STUDENTS (fname,lname,email) values (firstname,lastname,e_mail); 
end; 
/
2

Oracleはパラメータとして@を使用しません。列名と区別するために、接頭辞を付けることを強くお勧めします。このような何か:また

create or replace PROCEDURE Getstudentname (
    in_firstname varchar2, 
    in_lastname varchar2, 
    in_e_mail varchar2 
) 
as 
begin 
    insert into tbl_students(fname, lname, email) 
     values(in_firstname, in_lastname, in_e_mail); 
end; 

、Oracleは文字列パラメータの長さを必要とせず、varchar2は、変数の標準的な文字列型です。あなたのコードは、OracleコードよりSQL Serverコードに似ています。

関連する問題