错误(5):PLS-00801:内部错误[ph2csql_strdef_to_diana:bind]

时间:2015-09-24 21:26:43

标签: sql oracle11g

运行以下语句时,我收到使用Oracle 11g的错误。

CREATE OR REPLACE TRIGGER autoincrement_sm_users_id BEFORE INSERT ON SM_USERS FOR EACH ROW BEGIN SELECT sm_users_id.NEXTVAL INTO : new.id FROM dual; END;

错误是:

Error(5): PLS-00801: internal error [ph2csql_strdef_to_diana:bind]

2 个答案:

答案 0 :(得分:3)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="initURL">
  <select id="priceLookupDay">
    <option value="DAY">DAY</option>
    <option value="01">01</option>
    <option value="02">02</option>
    <option value="03">03</option>
    <option value="04">04</option>
    <option value="05">05</option>
    <option value="06">06</option>
    <option value="07">07</option>
    <option value="08">08</option>
  </select>

  <input type="button" id="FormSubmit" value="Look Up" />
</form>

删除冒号(CREATE OR REPLACE TRIGGER autoincrement_sm_users_id BEFORE INSERT ON SM_USERS FOR EACH ROW BEGIN SELECT sm_users_id.NEXTVAL INTO :NEW.id FROM dual; END; )和:之间的空格。

答案 1 :(得分:0)

除了上面的答案外,我想指出的是,如果您从测试脚本中复制并粘贴代码,而忘记删除&符号,则在任何pl / sql单元中也可能发生相同的情况变量。

例如您的pl / sql单元包含

之类的内容
...
select value
inlo l_variable
from table
where key = l_key_var;
...

您要执行这段代码

select value
--inlo l_variable
from table
where key = &l_key_var;

在品尝和调试后,您可以将这段代码复制为

...
select value
inlo l_variable
from table
where key = &l_key_var;
...

此处的&符号将导致«PLS-00801:内部错误[ph2csql_strdef_to_diana:bind]»。 但是,消息中提到的“戴安娜”是谁? :)