sql转换oracle
❶ sql SERVER 存储过程,转换成ORACLE存储过程
你这个过程其实就是分页查询用户信息是吧
--利用游标返回结果集
CREATEORREPLACEPACKAGEpkg_queryASTYPEcur_queryISREFCURSOR;
ENDpkg_query;
CREATEORREPLACEPROCEDUREUP_UserInfo_List_select
(
WhereSqlinvarchar2,--查询条件
StartIndexinNumber,--当前页
EndIndexinNumber,--每页显示记录条数
RecordCountoutNumber,
v_curoutSYS_REFCURSOR)--返回的结果集
IS
v_sqlVARCHAR2(1000):='';--sql语句
BEGIN
--查总记录数
v_sql:='SELECTTO_NUMBER(COUNT(*))FROMUserInfoWHERE1=1';
IFWhereSqlISNOTNULLorWhereSql<>''THEN
v_sql:=v_sql||WhereSql;
ENDIF;
EXECUTEIMMEDIATEv_sqlINTORecordCount;
--实现分页查询
v_sql:='SELECT*FROM(SELECTA.*,rownumrFROM(SELECTUserId,UserName,RoleId,IsLock,DescfromUserInfo';
IFWhereSqlISNOTNULLorWhereSql<>''THEN
v_sql:=v_sql||'WHERE1=1'||WhereSql||'ORDERBYUserId';
ENDIF;
v_sql:=v_sql||')AWHERErownum<='||EndIndex||')BWHEREr>='||StartIndex;
DBMS_OUTPUT.put_line(v_sql);
OPENv_curFORv_sql;
ENDUP_UserInfo_List_select;
--执行,plsql这里是看不到结果集,找到这个过程点测试,才能看到。当然你在程序里使用也是能返回的。
declare
RecordCountnumber:=0;
v_curpkg_query.cur_query;
begin
UP_UserInfo_List_select('',1,10,RecordCount,v_cur);
DBMS_OUTPUT.put_line(RecordCount);
end;
❷ 如何将一个 mysql 风格的 sql 脚本转换为 oracle 导入的 sql 脚本
用navicat 9.0
1、先新建一个mysql的数据库,然后把这个脚本导入进去(肯定会成功的)
2、在新建导入的数据库上,右击,数据传输,右边的目标选择文件,然后右边第二个选择sql格式,选择oracle就行了
❸ sql语句与oracle语句的转换
select table_name from dba_tables where table_name='TMP' 注意最后where中的表是大写的