oracle数据库方言中切换DAO模块方言是什么意思

在oracle 10g中创建了存储过程 ,下面每句话是什么意思_百度知道
在oracle 10g中创建了存储过程 ,下面每句话是什么意思
SQL&gtSQL& exec 。SQL&
return v_SQL 过程已成功完成;)PL/
7函数已创建; create or replace function get_sal3(name varchar2)
return number is
v_sal number(6; var salary numberSQL&
select sal into v_sal from emp where upper(ename)=upper(name),2):=get_sal3(&#39:scott&#39
提问者采纳
exec :salary。SQL&gtSQL&scott'
/参数 并将结果赋予salary PL&#47,2);SQL 过程已成功完成。SQL&
相当于提交函数已创建; 定义变量v_sal
select sal into v_sal from emp where upper(ename)=upper(name);) 执行get_sal3函数 传入'
return v_ create or replace function get_sal3(name varchar2) 建立函数get_sal3 参数为name varchar2型
return number is 返回值number 型
v_sal number(6:=get_sal3('
7 var salary number
定义number
型变量salary SQL&scott&#39
提问者评价
谢谢 ,楼上和楼下都会回答的很好,只有一个满意的答案,不好意思
其他类似问题
按默认排序
其他2条回答
-- 返回一个名为 v_sal
类型为 number(6;
return number is
-- 函数返回值的类型
v_sal number(6;
return v_ create or replace function get_sal3(name varchar2) --创建函数 (名为-get_sal3) name
作为传入参数
varchar2类型SQL&
--取出数据;
select sal into v_sal from emp where upper(ename)=upper(name),2)的变量,2),用传入的参数 name 作为 where 条件 ,把从表 emp 得到的 sal 值 赋值给 变量 v_ -- 函数返回变量v_sal
SQL& create or replace function get_sal3(name varchar2)
--创建名为get_sal3的函数
return number is
--返回值是number型
v_sal number(6,2);--定义数字变量
select sal into v_sal from emp where upper(ename)=upper(name);
--取出符合传入参数值的数值到v_sal
--返回给调用变量
您可能关注的推广回答者:
存储过程的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Loading .....
Copyright 2006 Adrian Holovaty and Jacob Kaplan-Moss.This
work is licensed under the .
Hosting graciously provided by
Chinese translate hosting by .Oracle、DB2、MySQL每种数据库都有几个不同的方言,在什么情况下使用哪种方言呢? 十万火急+++++++_百度知道
Oracle、DB2、MySQL每种数据库都有几个不同的方言,在什么情况下使用哪种方言呢? 十万火急+++++++
提问者采纳
用什么数据库就用那个数据库的语言写,老板不会欣赏你这种人,他要的是能给他干活的就行。千万不要去卖弄你那数据库知识,不然你会后悔的,相信我不会错
现在我这边的问题是不确定客户用的是什么数据库或者数据库的说明版本,我要根据实际情况让系统自动选择。。。
这个真不能,你也可以找高手试试,反正我还真不知道客户在给你下单子的时候不把使用语言和数据库说明的情况。如果客户不说我们就是默认SQL,然后要是客户最后补充说明就在改。
提问者评价
其他类似问题
按默认排序
其他3条回答
oracle&#47,否则为oracle数据库方言自动选择这个很难确定,必须具体问题才能具体分析,只有碰到特定的方法的时候才能知道用那个方言下的方法: select * from sysibm/db2都可以返回结果的,必定为db21) 先能知道是不是mysqlselect row_number() over()
from tab---&sysdummy1---〉结果返回,mysql不可以2) oracle/db2run sql
用哪个数据库的哪个版本,就用对应数据库相应对应版本的方言
能不能具体说明下数据库?-- 版本?--方言?
比如说,你用 oracle ,就要用 oracle 方言用 oracle 9i ,就要用对应的 oracle 9i 方言,用10g,就用10g方言。。。
这个我懂,我要知道具体是怎么一一对应的?有没有同一版本支持多种方言的?
做项目的时候,会不知道数据库版本么?方言只是对某些不常见用法会有所帮助,尽量用标准SQL语法写,基本没方言什么事
您可能关注的推广
十万火急的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁当前访客身份:游客 [
当前位置:
你好,想跟你请教个问题:我要操作多数据库,有mysql,oracle和sqlserver的,配置如下
cp = new C3p0Plugin(&jdbc:oracle:thin:@xxx.xx.xx.xx:1521:ora10yw&,&ha&,&h2009a&); cp.setDriverClass(&oracle.jdbc.driver.OracleDriver&); me.add(cp); ActiveRecordPlugin arp = new ActiveRecordPlugin(cp); arp.setShowSql(true); me.add(arp); arp.setDialect(new OracleDialect()); arp.setContainerFactory(new CaseInsensitiveContainerFactory());
cpmysqlswjcms = new C3p0Plugin(&jdbc:mysql://xxx.xx.xx.xx/swjcms?characterEncoding=GBK&zeroDateTimeBehavior=convertToNull&,&vhhadmin&,&vhhadmin&); cpmysqlswjcms.setDriverClass(&com.mysql.jdbc.Driver&); me.add(cpmysqlswjcms);
cpmysqlRWDB = new C3p0Plugin(&jdbc:mysql://xxx.xx.xx.xx/RWDB?characterEncoding=GBK&zeroDateTimeBehavior=convertToNull&,&vhhadmin&,&vhhadmin&); cpmysqlRWDB.setDriverClass(&com.mysql.jdbc.Driver&); me.add(cpmysqlRWDB);
在查询时,使用DB模式,直接写sql, String sitessql = &select * &; String sitesqlexceptselect = &from ST_STBPRP_B where STTP in (&+sitetype+&)&; // DbKit.setDialect(new MysqlDialect()); Page&Record& siterecords = Db.paginate(Config.cpmysqlRWDB.getDataSource(),1,10,sitessql,sitesqlexceptselect); 跟踪执行里面,分页查询时怎么默认用的oracle的数据库方言,断点代码在Db.class,dialect默认是oracle的,
DbKit.dialect.forPaginate(sql, pageNumber, pageSize, select, sqlExceptSelect);
,而没有使用mysql的,好像也没有地方单独指定进行切换,这个问题怎么解决,是我多数据库的配置有误吗?急救,谢谢,使用的最新jfinal1.5版本
共有6个答案
<span class="a_vote_num" id="a_vote_num_
多谢各位的回复,大牛的设计挺不错,准备尝试下,之前一个小项目写接口操作oracle数据库,感觉jfinal比较方便,所以继续在项目中实践,现在的项目跨数据库操作是家常便饭了,期待jfinal在多数据库操作支持上能做的更好
<span class="a_vote_num" id="a_vote_num_
怎么简单的问题,还要绕来绕绕去,能拿到connection,就能得到metadata,就能知道jdbc连的是什么数据库,就能知道要使用哪个dialect,根本不需要手工设置dialect
对哪些需要手工设置dialect的,感到比较失望
<span class="a_vote_num" id="a_vote_num_
<span class="a_vote_num" id="a_vote_num_
引用来自“宏哥”的答案引用来自“JFinal”的答案 & & &JFinal ActiveRecodPlugin 中的 Dialect 是共享的,所以如果需要动态切换 dialect,需要使用 DbKit.setDialect(...) 来实现。但此法在目前只能用于单线程。
& & JFinal 后续会设计一个极简的完美支持多线程、多数据源、多方言、嵌套事务的方案彻底提升 ActiveRecord 功能一个等级
Dialet 实际上本质是无法支持的
比如那个connect by.
建议加强原生的结果集操作进行更多支持, 这才是 jFinal 走向严谨的商务应用的更好选择.
& & JFinal ActiveRecordPlugin 中的 Dialect 仅仅对基本的增删改查及分页有支持,是为了支持这类操作:
User.dao.findById(123);
从而不用这样写: User.dao.find(&select * from where id=?&, 123),省点代码。
& & JFinal 的 Dialect 是为不同数据库生成基本的增删改查代码而存在的,并不是为了跨数据库,与
的理念一致JFinal 不会考虑使用Dialect实现跨数据库。
<span class="a_vote_num" id="a_vote_num_
引用来自“JFinal”的答案 & & &JFinal ActiveRecodPlugin 中的 Dialect 是共享的,所以如果需要动态切换 dialect,需要使用 DbKit.setDialect(...) 来实现。但此法在目前只能用于单线程。
& & JFinal 后续会设计一个极简的完美支持多线程、多数据源、多方言、嵌套事务的方案彻底提升 ActiveRecord 功能一个等级
Dialet 实际上本质是无法支持的
比如那个connect by.
建议加强原生的结果集操作进行更多支持, 这才是 jFinal 走向严谨的商务应用的更好选择.
<span class="a_vote_num" id="a_vote_num_
& & &JFinal ActiveRecodPlugin 中的 Dialect 是共享的,所以如果需要动态切换 dialect,需要使用 DbKit.setDialect(...) 来实现。但此法在目前只能用于单线程。
& & JFinal 后续会设计一个极简的完美支持多线程、多数据源、多方言、嵌套事务的方案彻底提升 ActiveRecord 功能一个等级
有什么技术问题吗?
sunnyra...的其他问题
类似的话题}

我要回帖

更多关于 dao层是什么 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信