更新:如何修复过程语句中的 SQL 错误:新错误 [重复]

Posted

技术标签:

【中文标题】更新:如何修复过程语句中的 SQL 错误:新错误 [重复]【英文标题】:UPDATE: How to fix SQL error in procedure statement : NEW ERROR [duplicate] 【发布时间】:2014-11-22 00:02:38 【问题描述】:

我正在创建 sql 数据库,并且我有许多不同的表连接到不同的实体关系。

我目前正在使用程序处理 1:N 关系并将数据填充到表中。

我已经取得了一些进展,但我总是遇到一些小错误,而且我在修复它们时遇到了问题。

我刚遇到一个我无法修复的问题。我已经感冒了一个小时了,我猜它可能就在那里,但我只是看不到它。

无论如何...

这是代码

表格

CREATE TABLE CENIK (
ID_CENIK INTEGER NOT NULL,
CENA NUMBER(10) NOT NULL,
DATUM_OD DATE NOT NULL,
DATUM_DO DATE NOT NULL,
TK_ID_ARTIKEL NUMBER(10) NOT NULL
);

ALTER TABLE CENIK
ADD (CONSTRAINT PK_CENIK PRIMARY KEY (ID_CENIK));

ALTER TABLE CENIK
ADD (CONSTRAINT TK_CENIK_ID_ARTIKEL FOREIGN KEY
(TK_ID_ARTIKEL) REFERENCES ARTIKEL(ID_ARTIKEL));

程序代码

--polnjenje tabele cenik
PROCEDURE polni_cenik(stevilo_cenikov NUMBER) IS
cena_artikla NUMBER(10);
datum_od DATE;
datum_do DATE;
c_tk_id_artikel NUMBER(10);
c_stevilo_artiklov int;
BEGIN
    SELECT MAX(ID_ARTIKEL) INTO c_stevilo_artiklov FROM ARTIKEL;
    FOR st14 IN 1..stevilo_cenikov LOOP
        cena_artikla := dbms_random.value(1,9999);
        datum_od := SYSDATE();
        datum_do := SYSDATE();
        datum_od := datum_od - dbms_random.value(0,1000);
        datum_do := datum_do + dbms_random.value(0,1000);
        c_tk_id_artikel := round(dbms_random.value(1,c_stevilo_artiklov));
        INSERT INTO CENIK(ID_CENIK, DATUM_OD, DATUM_DO, TK_ID_ARTIKEL)
        VALUES (st14, datum_od, datum_do, c_tk_id_artikel);
        dbms_output.put_line (st14);
    END LOOP;
COMMIT;
END;

这就是错误

【问题讨论】:

@toddlermenot 我很抱歉我这样做了,我保证我会用这个线程来解决其他问题...... 【参考方案1】:

ime_kraja := ||' '|| TO_CHAR(st); 应该是 ime_kraja := TO_CHAR(st); 否则你在第一个 || 之前忘记了一些东西。

【讨论】:

。 .我怀疑应该是ime_kraja := ime_kraja || ' ' || TO_CHAR(st) 非常感谢。一整天都在工作,我的眼睛只是累了2。再次感谢您! @GordonLinoff,感应的力量是吗? :) @fox 。 . .如果您觉得这个答案有用,您应该花点时间接受它。 @GordonLinoff 完成:)

以上是关于更新:如何修复过程语句中的 SQL 错误:新错误 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何修复存储过程 Oracle PL/SQL 的错误?

如何修复PUT Invoke-RestMethod中的“401 Unauthorized”错误(试图替换存储过程)

如何修复此“忽略 SQL 语句”错误?

更新行时如何修复informix错误-244

访问中的 SQL 更新语句的语法错误

如何在 RODBC 中运行 SQL 更新语句?