CREATE OR REPLACE PROCEDURE DEV."INSERTDIRECTOR" (
 directorId in number,
 name in nvarchar2,
 zhicheng in nvarchar2,
 zhiwu in nvarchar2,
 result out number
)
as
 resultId number(6);
begin
 insert into Director(Director_ID,Name,ZhiCheng,ZhiWU)
 values(directorId,name,zhicheng,zhiwu);
 resultId := directorId;
 result := resultId;
end;编译没有错误:执行时出现
Oracle.DataAccess.Client.OracleException ORA-06550: 第 1 行, 第 7 列: PLS-00103: 出现符号 "{"在需要下列之一时: 
begin case declare exit for
   goto if loop mod null pragma raise return select update while
   with <an identifier> <a double-quoted delimited-identifier>
   <a bind variable> << close current delete fetch lock insert
   open rollback savepoint set sql execute commit forall merge
   <a single-quoted SQL string> 
pipe    
在 Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure)
   在 Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, String procedure, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src)
   在 Oracle.DataAccess.Client.OracleCommand.ExecuteReader(Boolean requery, Boolean fillRequest, CommandBehavior behavior)
   在 Oracle.DataAccess.Client.OracleCommand.System.Data.IDbCommand.ExecuteReader()
   在 IBatisNet.DataMapper.Commands.DbCommandDecorator.System.Data.IDbCommand.ExecuteReader()
   在 IBatisNet.DataMapper.MappedStatements.MappedStatement.RunQueryForObject(RequestScope request, ISqlMapSession session, Object parameterObject, Object resultObject)
   在 IBatisNet.DataMapper.MappedStatements.MappedStatement.ExecuteQueryForObject(ISqlMapSession session, Object parameterObject, Object resultObject)
   在 IBatisNet.DataMapper.MappedStatements.MappedStatement.ExecuteQueryForObject(ISqlMapSession session, Object parameterObject)
   在 IBatisNet.DataMapper.SqlMapper.QueryForObject(String statementName, Object parameterObject)