今天第一次接触ORCALE,咋得就那么不习惯....

paranoia190 2007-01-03 03:53:31
写一个简单得不能再简单的存储过程.存在很多疑问.
CREATE OR REPLACE PROCEDURE TEST
(CODE IN CHAR) --这里我指定了CHAR为什么不能指定长度(VARCHAR好象也一样):CHAR(2)?
AS
BEGIN
DBMS_OUTPUT.put_line(CODE); --这里有没有象SQL SERVER的PRINT类似的方法....可以少敲几个字.
END;


EXECUTE TEST('AA');--这里怎么就提示说SQL有错..

哎.第一次就那么多问题.怎么SQL SERVER感觉很好用的嘛.
...全文
508 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
icedut 2007-01-05
  • 打赏
  • 举报
回复
toad测试
DECLARE
CODE VARCHAR2(200);

BEGIN
CODE := 'AA';

"TEST_ll" ( CODE );

COMMIT;
END;
icedut 2007-01-05
  • 打赏
  • 举报
回复
toad测试
DECLARE
CODE VARCHAR2(200);

BEGIN
CODE := 'AA';

ET_STATISTICS."TEST_ll" ( CODE );

COMMIT;
END;

---ET_STATISTICS是我这边的用户,你可以换成你自己的用户
paranoia190 2007-01-05
  • 打赏
  • 举报
回复
COPY你的代码.什么都没改.
CREATE OR REPLACE PROCEDURE "TEST_ll"
(CODE IN CHAR)
AS
BEGIN
DBMS_OUTPUT.PUT_LINE(CODE);
END;

/
toad测试
DECLARE
CODE VARCHAR2(200);

BEGIN
CODE := 'AA';

ET_STATISTICS."TEST_ll" ( CODE );

COMMIT;
END;

执行错误.
提示错误:
ORA-06550: 第 7 行,第 3 列
PLS-00201: 必须说明标识符'ET_STATISTICS.TEST_ll'
ORA-06550: 第 7 行,第 3 列
PL/SQL : Statement ignored

辛辛苦苦几十年,一夜回到解放前,

icedut 2007-01-05
  • 打赏
  • 举报
回复
CREATE OR REPLACE PROCEDURE "TEST_ll"
(CODE IN CHAR)
AS
BEGIN
DBMS_OUTPUT.PUT_LINE(CODE);
END;

/
toad测试
DECLARE
CODE VARCHAR2(200);

BEGIN
CODE := 'AA';

ET_STATISTICS."TEST_ll" ( CODE );

COMMIT;
END;
icedut 2007-01-05
  • 打赏
  • 举报
回复
paranoia190(190) ( ) 信誉:100 Blog 2007-1-5 10:51:21 得分: 0



http://community.csdn.net/Expert/topic/5272/5272339.xml?temp=.3922693
问题还没解决呢,就不让恢复了...

没有连续回复超过3次阿
不知道.我回复了他就说我超过3次了...




--
至少现在没看到你的回复超过3次
icedut 2007-01-05
  • 打赏
  • 举报
回复
名字是写错了
EXECUTE TEST('AA');
paranoia190 2007-01-05
  • 打赏
  • 举报
回复
哦基本明白了.真的非常感谢你.
icedut 2007-01-05
  • 打赏
  • 举报
回复
sqlserver里面是自动提交的
这点差距还是很大的
icedut 2007-01-05
  • 打赏
  • 举报
回复
COMMIT;
oracle里面是需要提交的,DDl语句是自动提交
dml语句就要自己commit了

--------
oracle里面执行匿名快的时候要用begin end
这是语法规定
paranoia190 2007-01-05
  • 打赏
  • 举报
回复
又试了一下.可以不要COMMIT
但BEGIN ..END 一定要.呵呵.就是这个问题了.
paranoia190 2007-01-05
  • 打赏
  • 举报
回复
成功了...
谢谢你了!!!!!!!^_^
但有几个疑问.


我是这样写的.
BEGIN
SYS.TEST('AAA');
COMMIT;
END;

基本和你的一样.为什么要COMMIT?不能自动COMMIT吗?
还有为什么一定要BEGIN ..END呢?
SYS.TEST('AAA');
COMMIT;
这样写就认为是2个过程.
paranoia190 2007-01-04
  • 打赏
  • 举报
回复
CREATE OR REPLACE PROCEDURE "SYS"."TEST"
(CODE IN CHAR)
AS
BEGIN
DBMS_OUTPUT.put_line(CODE);
END;
这个是对的.
然后执行部分:

EXECUTE TEST('AA')
错误信息:ORA-00900:无效SQL语句

EXECUTE SYS.TEST('AA');
一样的错误信息.
paranoia190 2007-01-04
  • 打赏
  • 举报
回复
CREATE OR REPLACE PROCEDURE "SYS"."TEST"
(CODE IN CHAR)
AS
BEGIN
DBMS_OUTPUT.put_line(CODE);
END;
这个是对的.
然后执行部分:

EXECUTE TEST('AA')
错误信息:ORA-00900:无效SQL语句

EXECUTE SYS.TEST('AA');
一样的错误信息.
paranoia190 2007-01-04
  • 打赏
  • 举报
回复
CREATE OR REPLACE PROCEDURE "SYS"."TEST"
(CODE IN CHAR)
AS
BEGIN
DBMS_OUTPUT.put_line(CODE);
END;
这个是对的.
然后执行部分:

EXECUTE TEST('AA')
错误信息:ORA-00900:无效SQL语句

EXECUTE SYS.TEST('AA');
一样的错误信息.
baojianjun 2007-01-03
  • 打赏
  • 举报
回复
习惯成自然 多多尝试和练习就会好多了

你能把你的具体的错误信息贴出来看看吗?
tgm78 2007-01-03
  • 打赏
  • 举报
回复
set serveroutput on
不能有分号的
paranoia190 2007-01-03
  • 打赏
  • 举报
回复
有的.肯定不是这个问题.
  • 打赏
  • 举报
回复
paranoia190(190)
这句 set serveroutput on 后面没有分号';'
paranoia190 2007-01-03
  • 打赏
  • 举报
回复
SQL> CREATE OR REPLACE PROCEDURE HELLO_PRO(STR VARCHAR2) AS
2 BEGIN
3 DBMS_OUTPUT.PUT_LINE(STR);
4 END;
5 /
正确.

set serveroutput on;
exec hello_pro('he');
错误.
wiler 2007-01-03
  • 打赏
  • 举报
回复
SQL> CREATE OR REPLACE PROCEDURE HELLO_PRO(STR VARCHAR2) AS
2 BEGIN
3 DBMS_OUTPUT.PUT_LINE(STR);
4 END;
5 /

Procedure created

SQL> set serveroutput on
SQL> exec hello_pro('he');
he

PL/SQL procedure successfully completed
加载更多回复(3)
内容概要:本文围绕可变桨叶四旋翼无人机的规范控制与点对点运动模拟展开,重点研究优化推力分配策略在翻转动作中的应用与性能比较。通过Matlab代码实现,构建了四旋翼动力学模型,并设计了多种控制算法以实现精确的姿态调整与轨迹跟踪。研究对比了不同推力分配方案在执行高机动性翻转动作时的稳定性、能耗效率与响应速度,旨在提升无人机在复杂飞行任务中的动态性能与控制精度。该仿真研究为无人机飞控系统的设计与优化提供了理论依据和技术支持。; 适合人群:具备一定自动控制理论基础和Matlab编程能力,从事无人机控制、飞行器动力学或机器人系统研究的科研人员及研究生。; 使用场景及目标:① 实现四旋翼无人机在三维空间中的精确点对点运动控制;② 对比分析不同推力分配策略在执行翻转等高难度动作时的控制效果与能耗表现,优化飞行性能;③ 为无人机自主飞行、特技飞行及复杂环境下的机动控制提供算法验证平台。; 阅读建议:此资源以Matlab仿真为核心,建议读者结合相关控制理论知识,深入理解代码实现细节,重点关注动力学建模、控制律设计与推力分配模块。在学习过程中,应动手调试参数,复现文中翻转动作的仿真结果,并尝试拓展至其他复杂飞行任务,以加深对无人机控制机理的理解。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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