Oracle 存储过程 语句问题 谢谢大家给帮忙一下!

zhugdbbz 2007-12-13 05:50:03
CREATE OR REPLACE PROCEDURE "CIIC"."USP_WRITELOGTODATABASE" as
EventId INTEGER;
Priority INTEGER;
Title varchar2(500);
Message varchar2(4000);
machineName varchar2(100);
Timestamp DATE;
Severity varchar2(100);
AppDomainName varchar2(1000);
ProcessId INTEGER;
ProcessName varchar2(500);
Win32ThreadId INTEGER;
ThreadName varchar2(500);
formattedmessage varchar2(4000);
LogId out number
begin
counter number;
SELECT SEQ_TB_CANDIDATE_LOG.NEXTVAL INTO :counter FROM dual
LogId := counter;

insert into TB_CANDIDATE_Log
(
id,
EventId,
Priority,
Title,
Message,
Machine,
Timestamps,
Severity,
ApplicationDomain,
ProcessId,
ProcessName,
Win32ThreadId,
ThreadName,
ExtendedProperties
)
values
(
LogId,
EventId,
Priority,
Title,
Message,
machineName,
Timestamp,
Severity,
AppDomainName,
ProcessId,
ProcessName,
Win32ThreadId,
ThreadName,
formattedmessage
);
end;


总是提示“行号= 15 列号= 34 错误文本= PLS-00103: 出现符号 "NUMBER"在需要下列之一时: := . ( @ % ; not null range default character ” 谢谢 大家了 着急啊!
...全文
298 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhugdbbz 2008-02-21
  • 打赏
  • 举报
回复
谢谢大家 问题解决。一直在忙 没空结贴,在此对大家说声对不起了啊!
fazzamilan 2008-01-09
  • 打赏
  • 举报
回复
習慣在SQL Navigator上寫,不太會樓主這樣的方法
fazzamilan 2008-01-09
  • 打赏
  • 举报
回复
CREATE OR REPLACE PROCEDURE "CIIC"."USP_WRITELOGTODATABASE" as
EventId INTEGER;
Priority INTEGER;
Title varchar2(500);
Message varchar2(4000);
machineName varchar2(100);
Timestamp DATE;
Severity varchar2(100);
AppDomainName varchar2(1000);
ProcessId INTEGER;
ProcessName varchar2(500);
Win32ThreadId INTEGER;
ThreadName varchar2(500);
formattedmessage varchar2(4000);
LogId out number
//我記得如果是OUT,應該放在參數裏吧?樓主請確認一下
begin
counter number;
//這個定義變數應該放begin上面吧
SELECT SEQ_TB_CANDIDATE_LOG.NEXTVAL INTO :counter FROM dual
//into 不用加‘:’,後面要用‘;’
LogId := counter;

insert into TB_CANDIDATE_Log
(
id,
EventId,
Priority,
Title,
Message,
Machine,
Timestamps,
Severity,
ApplicationDomain,
ProcessId,
ProcessName,
Win32ThreadId,
ThreadName,
ExtendedProperties
)
values
(
LogId,
EventId,
Priority,
Title,
Message,
machineName,
Timestamp,
Severity,
AppDomainName,
ProcessId,
ProcessName,
Win32ThreadId,
ThreadName,
formattedmessage
);
end;
jinyongfans 2008-01-02
  • 打赏
  • 举报
回复
请教 boyd1985 用的是什么开发工具啊,写的语句能显示出关键字来?
竹林听雨2005 2007-12-17
  • 打赏
  • 举报
回复
对了,最上面一行不要改,我在这边测试时将上面的东西改掉了
还是那样的:
CREATE   OR   REPLACE     PROCEDURE   "CIIC"."USP_WRITELOGTODATABASE"   as 
竹林听雨2005 2007-12-17
  • 打赏
  • 举报
回复
改成下面的试试?

CREATE OR REPLACE PROCEDURE USP_WRITELOGTODATABASE
(
EventId INTEGER,
Priority INTEGER,
Title varchar2,
Message varchar2,
machineName varchar2,
Timestamp DATE,
Severity varchar2,
AppDomainName varchar2,
ProcessId INTEGER,
ProcessName varchar2,
Win32ThreadId INTEGER,
ThreadName varchar2,
formattedmessage varchar2,
LogId out number
) as counter number;
begin
................
mantisXF 2007-12-13
  • 打赏
  • 举报
回复
LogId out number;


少了个分号?
zhugdbbz 2007-12-13
  • 打赏
  • 举报
回复
to:还君明珠双泪垂, 犹恨初逢未上床

存储过程内的变量不是这这样定义吗 我现在还是有这个错误啊
zhugdbbz 2007-12-13
  • 打赏
  • 举报
回复
TO:枫の叶
还是不行啊
DragonBill 2007-12-13
  • 打赏
  • 举报
回复
begin
counter number;
变量定义的地方错了, 应为

counter number;
begin
mantisXF 2007-12-13
  • 打赏
  • 举报
回复
SELECT SEQ_TB_CANDIDATE_LOG.NEXTVAL INTO counter FROM dual;

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧