从sybase转换到oracle时sql差别的一些问题!

longpei312 2003-08-26 09:07:05
各位大侠:
1:在sybase中 set num1=@@error,在oracle中对应的语句是什么?
2:在oracle中 select 语句须与into 配合使用,请问:当select返回多条记录时(不能一条一条返回的情况),into后面该怎么写,如果定义游标的话,游标该怎么定义呢?
3:临时表定义后在存储过程中使用时提示
‘pls-00403:表达式'longyuan.temp_cancel' 不能作为select/fetch语句的into目标。 该怎么解决呢?
谢谢各位!
...全文
60 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lilygy5 2003-09-04
  • 打赏
  • 举报
回复
1:num varchar2(20)
charnum varchar2(100)
num:=sqlcode;
charnum sqlerrm;
2:对,用游标,cursor cur_test is
select * from table1;
3:是不是同一个用户下啊?
longpei312 2003-08-27
  • 打赏
  • 举报
回复
1:
set num1=@@error,返回错误代码,
sqlsatus 返回游标执行的状况!
3:问题已经解决!
谢谢!
longpei312 2003-08-27
  • 打赏
  • 举报
回复
to: beckhambobo(beckham)
那么像这样的错(实际返回的行数超出请求的行数)
该怎么处理呢?比如上例!
谢谢!!!
beckhambobo 2003-08-27
  • 打赏
  • 举报
回复
SQL> declare
2 num1 varchar2(10);
3 num2 varchar2(50);
4 num number;
5 begin
6 select id into num from aa;
7 exception
8 when others then
9 num1:=sqlcode;
10 num2:=sqlerrm;
11 dbms_output.put_line(num1);
12 dbms_output.put_line(num2);
13 end;
14 /
-1422
ORA-01422: 实际返回的行数超出请求的行数

PL/SQL procedure successfully completed
longpei312 2003-08-26
  • 打赏
  • 举报
回复
to jiezhi(浪子):
谢谢你!
1:提示必须说明标识符 'error'.
2: Cursor 'cur_recvlist'is declared but never used in 'UP_GET_BOSS_ABNORMAL'.
3: 我用 CREATE GLOBAL TEMPORARY TABLE temp_cancel(
cancelnumber number,
cancelmoney number,
canceldepartid varchar2(7)
) ON COMMIT PRESERVE ROWS
然后在过程中把select 的结果插入临时表,提示如上错误!
enhydraboy 2003-08-26
  • 打赏
  • 举报
回复
PL/SQL句法和T/SQL有很大的不同,除了SQL92标准的SQL语句外,你最好仔细看一下PL/sql帮助,改写你的语句。
enhydraboy 2003-08-26
  • 打赏
  • 举报
回复
PL/SQL句法和T/SQL有很大的不同,除了SQL92标准的SQL语句外,你最好仔细看一下PL/sql帮助,改写你的语句。
jiezhi 2003-08-26
  • 打赏
  • 举报
回复
1.num1=error;
2.select a into v_a from tab where ...;
cursor c is select ...;
3.more detail?
beckhambobo 2003-08-26
  • 打赏
  • 举报
回复
1、
set num1=@@error,sqlstatus分别有什么作用,解释一下。
2、
http://expert.csdn.net/Expert/topic/2188/2188359.xml?temp=.1404383
3、
把过程内容贴出来
BDB是跨数据库平台的数据库设计和自动安装工具、
支持Oracle、MS SQLServer、Access、MySQLSQLAnyWhere、Sybase数据库。
通过BDB可以快速建立数据库模型、并随与实体数据库进行双向同步。
它还可以为您的应用程序创建数据库自动安装(或自动升级)程序、
以及实现不同数据库平台间数据库迁移等。

此外、在BDB中提供了对开发语言的支持、
其数据库结构定义文件采用XML标准格式、
并且开放了外部读取数据库结构的源程序(C#/Delphi/JAVA)、
您可以通过使用BDB来简化软件开发和部署过程:

1、数据库设计、自动安装:支持和数据库之间的正向和反向工程。
既可以通过BDB进行新的数据库设计,自动创建或更新至实体数据库、
也可导出现有数据库结构,并为其创建数据库自动安装程序。
2、跨数据库平台:只需按熟悉的数据库平台进行一次定义,就可在上述各个
数据库平台中进行数据库自动安装和任意迁移。系统会自动进行语法、数据类型转换
3、数据库迁移:在不同数据库平台间进行数据库结构(包括数据表、索引、约束、
视图和存储过程对象)和数据迁移。
4、查询分析、数据表查询、数据编辑功能。提供专用的SQL编辑器、
支持SQL语法高亮、快速脚本输入、脚本预定义等。
5、预输出创建、更新SQL脚本。
6、提供数据导入、导出功能。支持从Excel导入导出的双向编辑操作。
7、对开发语言的支持。开放的数据库物理结构文件格式、并提供外部调用源程序,
包含C#、Delphi、JAVA三个版本。
8、数据库物理结构定义和实体数据库之间的比对更新、同步。
9、可为可重用属性创建数据字典定义、并进行同步。
10、采用方案定义、支持多个工程模式。
11、提供自定义功能、可以根据需要扩展数据库结构定义文件。
12、支持多语言(目前版本语言:中/英文)。并提供了新的语言定义的说明、
可根据需要增加新的语言支持。


版本更新:
1、2007.11.23 查询分析清除数据效率改善处理
2、2007.11.23 加入Sybase支持。
3、2007.11.26 状态栏调整。
4、2007.11.26 加入执行中断功能。
5、2007.11.26 数据表头资源增加备注项。
6、2007.11.26 查询分析加入desc [data]取当前数据表数据语法支持
7、2007.11.26 增加启动界面
8、2007.11.26 界面默认背景颜色更改。
9、2007.11.28 方案列表中增加双击设置为当前方案处理。
10、2007.11.28 更正MySQL下删除索引语法问题
11、2007.11.28 Oracle、MySQL下导入数据增加禁用、重新启用外键约束处理。
12、2007.11.28 更正MySQL下处理导入日期类型字段数据问题
13、2007.11.28 更正SQLServer下处理sql_variant、uniqueidentifier类型字段问题
14、2007.11.28 更正数据库迁移自定义数据库链接问题
15、2007.11.29 更正根据外键引用关系进行数据表排序问题
16、2007.11.30 更正初次保存数据表结构覆盖索引页记录问题


website: http://www.bainsoft.com/
support: bainsoft@163.com
blog: http://blog.csdn.net/12rain
BDB是跨数据库平台的数据库设计和自动安装工具、支持Oracle、MS SQLServer、Access、MySQLSQLAnyWhere、Sybase数据库。通过BDB可以快速建立数据库模型、并随与实体数据库进行双向同步。同它还可以为您的应用程序创建数据库自动安装(或自动升级)程序、以及实现不同数据库平台间数据库迁移等。此外、在BDB中提供了对开发语言的支持、其数据库结构定义文件采用XML标准格式、并且开放了外部读取数据库结构的源程序(C#/Delphi/JAVA)、您可以通过使用BDB来简化软件开发和部署过程:1、数据库设计、自动安装:支持和数据库之间的正向和反向工程。既可以通过BDB进行新的数据库设计,自动创建或更新至实体数据库、也可导出现有数据库结构,并为其创建数据库自动安装程序。2、跨数据库平台:只需按熟悉的数据库平台进行一次定义,就可在上述各个数据库平台中进行数据库自动安装和任意迁移。系统会自动进行语法、数据类型转换。3、数据库迁移:在不同数据库平台间进行数据库结构(包括数据表、索引、约束、视图和存储过程对象)和数据迁移。4、查询分析、数据表查询、数据编辑功能。提供专用的SQL编辑器、支持SQL语法高亮、快速脚本输入、脚本预定义等。5、预输出创建、更新SQL脚本。6、提供数据导入、导出功能。支持从Excel导入导出的双向编辑操作。7、对开发语言的支持。开放的数据库物理结构文件格式、并提供外部调用源程序,包含C#、Delphi、JAVA三个版本。8、数据库物理结构定义和实体数据库之间的比对更新、同步。9、可为可重用属性创建数据字典定义、并进行同步。10、采用方案定义、支持多个工程模式。11、提供自定义功能、可以根据需要扩展数据库结构定义文件。12、支持多语言(目前版本语言:中/英文)。并提供了新的语言定义的说明、可根据需要增加新的语言支持。website: www.bainsoft.com
更优更快 人工智能自动SQL优化----------http://www.sina.com.cn 2001/12/12 17:48 中国电脑教育报文/SQL爱好者  所谓SQL,就是指Structured Query Language(结构化查询语言),它是目前使用最广泛的数据库语言,用来和数据库打交道,从数据库中得到用户需要的数据。但是要想熟练使用SQL语句,也不是一件简单的事,有些语句使用起来也比较麻烦。如果我们对SQL语句进行优化,那么用户使用起来 就会方便许多。  简单来说,SQL语句的优化就是将性能低下的SQL语句转换成达到同样目的的性能优异的SQL语句。人工智能自动SQL优化就是使用人工智能技术,自动对SQL语句进行重写,找到性能最好的等效SQL语句。  人工智能自动SQL 优化  随着人工智能技术的发展和在数据库优化领域应用的深入,在20世纪90年代末终于出现了突破性的进展——人工智能自动SQL优化。目前在商用数据库领域LECCO TechnologyLimited(灵高公司)拥有该技术并提供使用该技术的自动优化产品——LECCO SQL Expert,其支持OracleSybase、MS SQLServer和IBMDB2数据库平台。该产品针对数据库应用的开发和维护阶段提供了几个特别的模块:SQL语法优化器、PL/SQL集成化开发调试环境(IDE)、扫描器、数据库监视器等。图1 人工智能自动SQL优化示意图  其核心模块之一“SQL语法优化器”的工作原理大致如下(如图1):  一条源SQL语句输入→“人工智能反馈式搜索引擎”对输入的SQL语句结合检测到的数据库结构和索引进行重写,产生N条等效的SQL语句输出→产生的N条等效SQL语句再送入“人工智能反馈式搜索引擎”进行重写,直至无法产生新的输出或搜索限额满→对 输出的SQL语句进行过滤,选出具有不同执行计划的SQL语句(即不同的执行效率)→对得到的SQL语句进行批量测试,找出性能最好的SQL语句。图2 优化前的SQL语句  自动优化实例  假设我们从源代码中抽取出这条SQL语句(如图2):  SELECTCOUNT(*)FROMEMPLOY-EE WHEREEXISTS(SELECT'X'FROM DEPARTMENTswheresEMP_DEPT=DPT_IDAND DPT_NAME LIKE'AC%')AND EMP_IDIN(SELECT SAL_EMP_IDFROM EMP_SAL_HISTB WHERESAL_SALARY>70000)   按“优化”按钮后,经过十几秒,SQL Expert就完成了优化的过程,从优化细节中可以看到,它在十几秒的间内重写产生了2267条等价的SQL语句,其中136条SQL语句有不同的执行计划(如图3)。图3 优化结果  接下来我们可以对自动重写产生的136条具有不同执行计划的SQL语句进行批运行测试,以选出性能最佳的等效SQL语句。按下“批运行”按钮,在“终止条件”页选择“最佳运行SQL语句”(如图4),按“确定”。图4 测试条件  经过几分钟的测试运行后,我们可以发现SQL124的运行间和反应间最短。运行速度约有22.75倍的提升(源SQL语句运行间为2.73秒,SQL124运行间为0.12秒,如图5)。图5 测试结果  我们把SQL124放入源代码中,结束一条SQL语句的优化工作。从上例可以看到,LECCO SQL Expert的自动重写技术使原来需要几小才能完成的SQL语句的优化工作,缩减到几分钟之内就可以完成。数据库管理员和开发人员可以从繁重的SQL语句优化工作中解脱出来。  边做边学式训练  LECCO SQL Expert不仅能够找到最佳的SQL语句,而且提供的“边做边学式训练”还能够教会开发人员和数据库管理员如何写出性能最好的SQL语句。LECCO SQL Expert的“SQL比较器”可以标明源SQL和待选SQL之间的不同之处。LECCO SQL Expert详尽的上下文敏感帮助系统可以指出执行计划的深层含义。图6 源语句与SQL124的比较  以上面优化的结果为例,为了查看源SQL语句和SQL124在写法上的不同,我们可以按下“比较器”按钮,对SQL124和源SQL语句进行比较。如果选择“双向比较”复选框,“SQL比较器”可以将两条互相间的不同之处以蓝色表示。当然,你也可以从 源语句和重写后的SQL语句中任选两条进行比较(如图6)。  从比较的结果可以看到,重写得到的SQL124把第一个Exists改写成了In;在字段DPT_ID上进行了合并空字符串的操作以诱导数据库先执行子查询中的(SELECTDPT_ID||'FROMDEPART-MENTWH

17,377

社区成员

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

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