Sql 埃卢西安旗帜API
我是新的旗帜学生api。当我运行下面的代码时,它会给我一个错误: ORA-00907:缺少右括号Sql 埃卢西安旗帜API,sql,oracle,plsql,Sql,Oracle,Plsql,我是新的旗帜学生api。当我运行下面的代码时,它会给我一个错误: ORA-00907:缺少右括号 call sb_course.f_query_one( p_subj_code => "LMA", p_crse_numb => "400", p_eff_term => 201203 ); 提前感谢您抽出时间。使用单引号应该可以。您确定此线路上发生了错误吗?你在评论中写的看起来不错
call sb_course.f_query_one(
p_subj_code => "LMA",
p_crse_numb => "400",
p_eff_term => 201203
);
提前感谢您抽出时间。使用单引号应该可以。您确定此线路上发生了错误吗?你在评论中写的看起来不错 罢工
你不想用“呼叫”这个词。如果您是用pl/sql编写的,那么请删除该单词。如果您是用sql编写的,那么请改用“exec” 小代码段不会产生错误
ORA-00907:missing
右括号
。该错误可能来自于
代码片段,或在通过调用f\u query\u one运行的代码中运行
SQL> drop procedure f_query_one;
Procedure dropped.
SQL> create or replace function f_query_one(p_subj_code in varchar2
2 , p_crse_numb in varchar2
3 , p_eff_term in varchar2) return varchar2
4 is begin
5 return 'Hello World!';
6 end f_query_one;
7 /
Function created.
下面,我展示
调用中的值周围的双引号无效。在里面
Oracle双引号是一种指定不需要
遵循普通标识符规则。本例中的错误是
ORA-06576:不是有效的函数或过程名称
调用过程时使用单引号是有效的
调用函数时,需要指定into
子句
接收返回值。否则,错误ORA-06576:无效
将引发函数或过程名称
在任何情况下都不是ORA-00907:缺少右括号
请查看更广泛的上下文以找到错误的原因
下面是与SQL*Plus的交互<代码>SQL>
是提示
新命令,下面的行带有数字表示其他行
为了那一个命令。其他所有内容都由SQL*Plus打印
使来自dbms\u输出的输出可见
SQL> set serveroutput on size unlimited
创建一个过程f\u query\u one
从您的
样品类型是根据传入的值猜测的
样品注意,我没有SB\u课程
schema。那将是一个巨大的挑战
与下面的示例和您的代码片段不同
SQL> create or replace procedure f_query_one(p_subj_code in varchar2
2 , p_crse_numb in varchar2
3 , p_eff_term in varchar2)
4 is begin
5 dbms_output.put_line('Hello World!');
6 end f_query_one;
7 /
Procedure created.
打电话问你的问题,并发现双引号没有
工作
用单引号打电话。工作
SQL> call f_query_one(p_subj_code => 'LMA'
2 , p_crse_numb => '400'
3 , p_eff_term => 201203);
Hello World!
Call completed.
删除该过程并创建一个名为f\u query\u one
的函数
SQL> drop procedure f_query_one;
Procedure dropped.
SQL> create or replace function f_query_one(p_subj_code in varchar2
2 , p_crse_numb in varchar2
3 , p_eff_term in varchar2) return varchar2
4 is begin
5 return 'Hello World!';
6 end f_query_one;
7 /
Function created.
调用函数。但是这个函数确实存在,为什么它说它不存在呢
SQL> call f_query_one(p_subj_code => 'LMA'
2 , p_crse_numb => '400'
3 , p_eff_term => 201203);
call f_query_one(p_subj_code => 'LMA'
*
ERROR at line 1:
ORA-06576: not a valid function or procedure name
创建一个绑定变量var
是一个SQL*Plus命令。它是
SQL或PL/SQL语言都不可用。
SQL> var so varchar2(20)
SQL> print so
SO
--------------------------------
Hello World!
在
子句中添加一个,将值保存在bind变量中
SQL> call f_query_one(p_subj_code => 'LMA'
2 , p_crse_numb => '400'
3 , p_eff_term => 201203) into :so;
Call completed.
打印绑定变量print
是一个SQL*Plus命令。它是
SQL或PL/SQL语言都不可用。
SQL> var so varchar2(20)
SQL> print so
SO
--------------------------------
Hello World!
我甚至试着称某人为“课程”或“查询一”(p_subc_code=>LM',p_crse_numb=>600P',p_eff_term=>201300)代码>并给出相同的错误消息。请告诉我这是否正确。:)我可以说几点。EXEC[UTE]
不是SQL或PL/SQL单词,而是SQL*Plus命令:。“CALL
是用于执行例程的SQL语句。”。我个人从未使用过呼叫
,尽管我的同事使用过。@BrianMcGinity我也尝试过单引号,但它给了我同样的错误。@ShannonSeverance谢谢你提供的信息。我尝试在没有调用的情况下调用该过程,但仍然遇到相同的错误。这是一个过程吗?因为f
有时用作函数的前缀。