CREATE TABLE DEGREE (
NO VARCHAR2(2) NOT NULL,
NAME VARCHAR2(20) NOT NULL,
CONSTRAINTPK_DEGREE_NO PRIMARY KEY(NO),
CONSTRAINT UQ_DEGREE_NAME UNIQUE(NAME)
)CREATE OR REPLACE PROCEDURE INS_DEGREE (p_name degree.name%type)
as
begin
if p_name = '' then
dbms_output.put_line('请具体的值!');
else
if length(p_name)>10 then
dbms_output.put_line('最多只能输入10个汉字!');
else
insert into degree values (sq_degree.nextval,p_name);
commit;
end if;
end if;
exception
when dup_val_on_index then
dbms_output.put_line('数据库中已经存在了该数据!');
rollback;
when others then
dbms_output.put_line('插入失败,请检查你是否插入了空值!');
rollback;
end ins_degree;private void Button1_Click(object sender, System.EventArgs e)
{
OracleConnection conn = new OracleConnection("data source = scott;user id = scott; password = tiger;");
OracleCommand cmd = new OracleCommand("[ins_degree]",conn);
cmd.CommandType=CommandType.StoredProcedure;
OracleParameter para=cmd.Parameters.Add("p_name",OracleType.VarChar,20);
para.Direction=ParameterDirection.Input;
para.Value="大学";
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}这是我在C#下调用存储过程的代码,但是报错消息为:
ORA-06550: 第 1 行, 第 7 列: PLS-00103: 出现符号 "["在需要下列之一时: begin case declare exit for goto if loop mod null pragma raise return select update while with << close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe 存储过程没问题,是调用语句的问题,在网上搜索了半天,找到了很多调用过程的里子,但是还是没有调用成功,请各位朋友在一个完整的调用语句。谢谢了。
NO VARCHAR2(2) NOT NULL,
NAME VARCHAR2(20) NOT NULL,
CONSTRAINTPK_DEGREE_NO PRIMARY KEY(NO),
CONSTRAINT UQ_DEGREE_NAME UNIQUE(NAME)
)CREATE OR REPLACE PROCEDURE INS_DEGREE (p_name degree.name%type)
as
begin
if p_name = '' then
dbms_output.put_line('请具体的值!');
else
if length(p_name)>10 then
dbms_output.put_line('最多只能输入10个汉字!');
else
insert into degree values (sq_degree.nextval,p_name);
commit;
end if;
end if;
exception
when dup_val_on_index then
dbms_output.put_line('数据库中已经存在了该数据!');
rollback;
when others then
dbms_output.put_line('插入失败,请检查你是否插入了空值!');
rollback;
end ins_degree;private void Button1_Click(object sender, System.EventArgs e)
{
OracleConnection conn = new OracleConnection("data source = scott;user id = scott; password = tiger;");
OracleCommand cmd = new OracleCommand("[ins_degree]",conn);
cmd.CommandType=CommandType.StoredProcedure;
OracleParameter para=cmd.Parameters.Add("p_name",OracleType.VarChar,20);
para.Direction=ParameterDirection.Input;
para.Value="大学";
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}这是我在C#下调用存储过程的代码,但是报错消息为:
ORA-06550: 第 1 行, 第 7 列: PLS-00103: 出现符号 "["在需要下列之一时: begin case declare exit for goto if loop mod null pragma raise return select update while with << close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe 存储过程没问题,是调用语句的问题,在网上搜索了半天,找到了很多调用过程的里子,但是还是没有调用成功,请各位朋友在一个完整的调用语句。谢谢了。
http://blog.csdn.net/web_gus/archive/2004/10/13/134907.aspx
变量声明
下加
PRAGMA AUTONOMOUS_TRANSACTION;as
PRAGMA AUTONOMOUS_TRANSACTION;
begin
不过是 oledb 的 vb 代码和VC 的