网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.使用Oracle 10gMERGE语句更新数据.
.Oracle处理多媒体信息的原理及展.
.ORACLE应用中常见的傻瓜问题1000.
.Oracle 9i 的增强型内存使用率查.
.优化Oracle .Net配置.
.Oracle 10月份发表的一系列漏洞.
.如何使用ADO访问Oracle数据库存储.
.细化解析:Oracle 10g ASM 的一点.
.Oracle 9i新特性研究六(闪回查询).
.SQLPlus命令使用指南(一).
.DBA福音:UNIX下自动备份Oracle数.
.CHAR,VARCHAR,VARCHAR2类型的区别.
.linux下oracle启动和关闭脚本.
.关于排序、sort_area_size、临时.
.专家在线:全面介绍恢复Oracle数.
.ORACLE PERFORMANCE SQL TUNING.
.control_files error ORA-01122 .
.讲解Oracle系统中用户权限的赋予.
.Oracle 9i 在 Red Hat Enterpris.
.zSeriesLinux可以运行在哪个版本.

返回一个最终记录

发表日期:2008-2-9



  here is the table:
  create table t1 (code varchar2(10), language varchar2(10),
  dscr varchar2(10));
  
  with this data:
  insert into t1 values ('X','EN','english_dscr');
  insert into t1 values ('X','FR','french_dscr');
  
  how can i write a query or create a view to return the english record
  when i do not in clude the language column in the where part of the query.
  
  example.
  select * from t1 where code='X';
  to return the english record.
  or
  select * from t1 where code='X' and language='FR'
  to return the french record.
  
  thanks for your solution.
  Unfortunately, it won't solve my problem.
  i need to query, not based on my default language but on the language as
  requested by the user who desires the info.
  
  ------------------------------------------------------------------------------------
  
  You can use your "own" context as well via create context -- this uses the
  default one that is there for all (but could be unreliable for the same reason
  -- anything could change it) -- but shows the concept:
  
  ops$tkyte@ORA9IR2> drop table t1;
  
  Table dropped.
  
  ops$tkyte@ORA9IR2>
  ops$tkyte@ORA9IR2>
  ops$tkyte@ORA9IR2> create table t1 (code varchar2(10), language varchar2(10),
  2 dscr varchar2(20));
  
  Table created.
  
  ops$tkyte@ORA9IR2>
  ops$tkyte@ORA9IR2> insert into t1 values ('X','EN','english_dscr');
  
  1 row created.
  
  ops$tkyte@ORA9IR2> insert into t1 values ('X','FR','french_dscr');
  
  1 row created.
  
  ops$tkyte@ORA9IR2>
  ops$tkyte@ORA9IR2> create or replace view v
  2 as
  3 select * from t1
  4 where language = case when sys_context( 'userenv', 'client_info') in (
  'EN', 'FR' )
  5            then sys_context( 'userenv', 'client_info' )
  6            else 'EN'
  7          end;
  
  View created.
  
  ops$tkyte@ORA9IR2>
  ops$tkyte@ORA9IR2> select * from v;
  
  CODE    LANGUAGE  DSCR
  ---------- ---------- --------------------
  X     EN     english_dscr
  
  ops$tkyte@ORA9IR2> exec dbms_application_info.set_client_info( 'FR' );
  
  PL/SQL procedure sUCcessfully completed.
  
  ops$tkyte@ORA9IR2> select * from v;
  
  CODE    LANGUAGE  DSCR
  ---------- ---------- --------------------
  X     FR     french_dscr
  
  ops$tkyte@ORA9IR2>
上一篇:ORA-01555 快照过旧--详细解释 人气:682
下一篇:ORACLE10g的新特性:自动化存储管理 人气:590
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐