oracle如何查看单个表的编码中如何插入包含单个撇号的数据

温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(2721)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'Oracle数据库中查询所有空表/字段中包含某个关键字的所有表',
blogAbstract:'\r\n查询所有空表:\r\nDECLAREv_table tabs.table_name%TYPE;v_sql VARCHAR2(888);v_q NUMBER;CURSOR c1 ISSELECT table_name tn FROMTYPE c IS REF CURSOR;c2BEGINDBMS_OUTPUT.PUT_LINE(\'以下为空数据表的表名:\');FOR r1 IN c1 LOOPv_table :=r1.v_sql :=\'SELECT count(*) q FROM \'||v_table||\' where rownum = 1\';',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:3,
publishTime:7,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}已解决问题
如何在EXCEL工作表中筛选出我想要的某单个数据或编号
浏览次数:4409
用手机阿里扫一扫
最满意答案
数据&&筛选&&自动筛选&&自定义&&包含&&*白*&&确定提示:白前后的※必须录入,不可省略。
答案创立者
以企业身份回答&
正在进行的活动
生意经不允许发广告,违者直接删除
复制问题或回答,一经发现,拉黑7天
快速解决你的电商难题
店铺优化排查提升2倍流量
擅长&nbsp 店铺优化
您可能有同感的问题
扫一扫用手机阿里看生意经
问题排行榜
当前问题的答案已经被保护,只有知县(三级)以上的用户可以编辑!写下您的建议,管理员会及时与您联络!
server is okOracle 中的通配符-小辛-宁静以致远-搜狐博客
Oracle 中的通配符
今天遇到个问题,用_和%为查询条件的时候,查询的结果是全部记录,经排查原因,_和%在Oracle中是通配符,可以匹配为任意字符。
查了查资料,学习了解决方法。
Oracle 中通配符的使用情况
  用于where比较条件的有:
  等于:=、&、&=、&、&=、&&
  包含:in、not in exists、not exists
  范围:between&&and、not between&&and
  匹配测试:like、not like
  Null测试:is null、is not null
  布尔链接:and、or、not
  通配符:
  在where子句中,通配符可与like条件一起使用。在Oracle中:
  %(百分号): 用来表示任意数量的字符,或者可能根本没有字符。
  _(下划线): 表示确切的未知字符。
  ?(问号): 用来表示确切的未知字符。
  #(井号): 用来表示确切的阿拉伯数字,0到9.
  [a-d](方括号):用来表示字符范围,在这里是从a到d.
  单引号(&):在Oracle中,应该只使用单引号将文本和字符和日期括起来,不能使用引号(包括单双引号)将数字括起来。
  双引号(&):在Oracle中,单双引号含义不同。双引号被用来将包含特定字符或者空格的列别名括起来。双引号还被用来将文本放入日期格式。
  撇号(&):在Oracle中,撇号也可以写成彼此相邻的两个单引号。为了在供应商名字中间查找所有带撇号的供应商名字,可以这样编写代码:select * from l_suppliers where supplier_name like &%&&%&
  &符号:在Oracle中,&符号常用来指出一个变量。例如,&fox是一个变量,稍微有点不同的一 种&& fox.每当&fox出现在Oracle脚本中时,都会要求您为它提供一个值。而使用&&fox,您只需要在& &fox第一次出现时为它提供变量值。如果想将&符号作为普通的符号使用,则应该关闭这个特性。要想关闭这个特性,可以运行以下的命令: set define off ,这是一个SQLplus命令,不是一个SQL命令。SQLplus设置了SQL在Oracle中运行的环境。
  双竖线(||):Oracle使用双竖线表示字符串连接函数。
  星号(*):select *意味着选择所有的列,count(*)意味着计算所有的行,表示通配符时,表示0个或任意多个字符。
  正斜杠(/):在Oracle中,用来终止SQL语句。更准确的说,是表示了&运行现在位于缓冲区的SQL代码&。正斜杠也用作分隔项。
  多行注释:/*&&*/.
  不等于:有多种表达方式:!=、^=、&&、not xxx=yyy、not(xxx=yyy)
oracle在Where子句中,可以对datetime、char、varchar字段类型的列用Like子句配合通配符选取那些&很像...&的数据记录,以下是可使用的通配符:%&& 零或者多个字符_&&& 单一任何字符(下划线)\&&&& 特殊字符
oracle10g以上支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE :与LIKE的功能相似2,REGEXP_INSTR :与INSTR的功能相似3,REGEXP_SUBSTR :与SUBSTR的功能相似4,REGEXP_REPLACE :与REPLACE的功能相似POSIX 正则表达式由标准的元字符(metacharacters)所构成:&^& 匹配输入字符串的开始位置,在方括号表达式中使用,此时它表示不接受该字符集合。&$& 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 &\n& 或 &\r&。&.& 匹配除换行符之外的任何单字符。&?& 匹配前面的子表达式零次或一次。&+& 匹配前面的子表达式一次或多次。&*& 匹配前面的子表达式零次或多次。&|& 指明两项之间的一个选择。例子&^([a-z]+|[0-9]+)$&表示所有小写字母或数字组合成的字符串。&( )& 标记一个子表达式的开始和结束位置。&[]& 标记一个中括号表达式。&{m,n}& 一个精确地出现次数范围,m=&出现次数&=n,&{m}&表示出现m次,&{m,}&表示至少出现m次。\num 匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。字符簇: [[:alpha:]] 任何字母。[[:digit:]] 任何数字。[[:alnum:]] 任何字母和数字。[[:space:]] 任何白字符。[[:upper:]] 任何大写字母。[[:lower:]] 任何小写字母。[[:punct:]] 任何标点符号。[[:xdigit:]] 任何16进制的数字,相当于[0-9a-fA-F]。各种操作符的运算优先级\转义符(), (?:), (?=), [] 圆括号和方括号*, +, ?, {n}, {n,}, {n,m} 限定符^, $, anymetacharacter 位置和顺序| */
其中关于条件,SQL提供了四种匹配模式:1,%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。比如 SELECT * FROM [user] WHERE u_name LIKE &%三%&将会把u_name为&张三&,&张猫三&、&三脚猫&,&唐三藏&等等有&三&的记录全找出来。另外,如果需要找出u_name中既有&三&又有&猫&的记录,请使用and条件SELECT * FROM [user] WHERE u_name LIKE &%三%& AND u_name LIKE &%猫%&若使用 SELECT * FROM [user] WHERE u_name LIKE &%三%猫%& 虽然能搜索出&三脚猫&,但不能搜索出符合条件的&张猫三&。2,_: 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:比如 SELECT * FROM [user] WHERE u_name LIKE &_三_&只找出&唐三藏&这样u_name为三个字且中间一个字是&三&的;再比如 SELECT * FROM [user] WHERE u_name LIKE &三__&;只找出&三脚猫&这样name为三个字且第一个字是&三&的;
3. regexp_like 正则表达式函数查询--查询FieldName中以1开头60结束的记录并且长度是7位select * from fzq where FieldName like &1____60&;select * from fzq where regexp_like(FieldName,&1....60&);--查询FieldName中以1开头60结束的记录并且长度是7位并且全部是数字的记录。--使用like就不是很好实现了。select * from fzq where regexp_like(FieldName,&1[0-9]{4}60&);-- 也可以这样实现,使用字符集。select * from fzq where regexp_like(FieldName,&1[[:digit:]]{4}60&);-- 查询FieldName中不是纯数字的记录select * from fzq where not regexp_like(FieldName,&^[[:digit:]]+$&);-- 查询FieldName中不包含任何数字的记录。select * from fzq where regexp_like(FieldName,&^[^[:digit:]]+$&);--查询以12或者1b开头的记录.不区分大小写。select * from fzq where regexp_like(FieldName,&^1[2b]&,&i&);--查询以12或者1b开头的记录.区分大小写。select * from fzq where regexp_like(FieldName,&^1[2B]&);-- 查询数据中包含空白的记录。select * from fzq where regexp_like(FieldName,&[[:space:]]&);--查询所有包含小写字母或者数字的记录。select * from fzq where regexp_like(FieldName,&^([a-z]+|[0-9]+)$&);--查询任何包含标点符号的记录。select * from fzq where regexp_like(FieldName,&[[:punct:]]&);
&MySQL的通配符情况
 MySQL中实现模糊查询有2种方式:一是用LIKE/NOT LIKE,二是用REGEXP/NOT REGEXP(或RLIKE/NOT RLIKE,它们是同义词)。  第一种是标准的SQL模式匹配。它有2种通配符:&_&和&%&。&_&匹配任意单个字符,而&%&匹配任意多个字符(包括0个)。举例如下:
SELECT * FROM table_name WHERE column_name LIKE &m%&; #查询某字段中以???m或M开头的所有记录????SELECT * FROM table_name WHERE column_name LIKE &%m%&; #查询某字段中包含???m或M的所有记录?SELECT * FROM table_name WHERE column_name LIKE &%m&; #查询某字段中以m或M结尾的所有记录SELECT * FROM table_name WHERE column_name LIKE &_m_&; #查询某字段中3个字符且m或M在中间的所有记录
  如果我们想查询包含通配符的字符串该怎么办呢?比如,50%或_get。答案就是:转义。可以用\来直接转义,或用ESCAPE定义转义字符来进行转义,都只是转义跟在后面的一个字符,例如:
?SELECT * FROM table_name WHERE column_name LIKE &%50\%%&; /*第2个%被转义,查询某字段包含50%的所有记录*/????SELECT * FROM table_name WHERE column_name LIKE &%50/%%& ESCAPE &/&; #第2个%被转义SELECT * FROM table_name WHERE column_name LIKE &%\_get%& ESCAPE &/&; /*&_&被转义,查询某字段包含_get的所有记录*/
  第二种是使用扩展正则表达式的模式匹配。先来看下扩展正则表达式一些字符的含义:&.&:匹配任意单个字符&?&:匹配前面的子表达式0次或1次。&+&:匹配前面的子表达式1次或多次。&*&:匹配前面的子表达式0次或多次。x*,表示0个或多个x字符;[0-9]*,匹配任何数量的数字。&^&:表示匹配开始位置。&$&:表示匹配结束位置。&[]&:表示一个集合。[hi],表示匹配h或i;[a-d],表示匹配a、b、c、d中任一个。&{}&:表示重复的次数。8{5},表示匹配5个8,即88888;[0-9]{5,11},表示匹配5到11个数字。  再来看个例子:
SELECT * FROM table_name WHERE column_name REGEXP &^50%{1,3}&; /*查询某字段中以50%、50%%或50%%%开头的所有记录*/
首先说说遇到的问题,在Access软件中写了一个带LIKE的SQL语句,可以正常执行,但是复制粘贴到ADO操作里面就出错了。其原因是这样的:如果 ADO所采用的数据库引擎是Microsoft Jet Engine,它是以Microsoft SQL Server为基础的,所以即使使用Access数据库作为数据源,也不能使用Access的SQL语法,而要采用SQL Server的语法,而它们的语法虽然很相像,但是还是有一些小区别,如LIKE语句。这是少数不能在本地测试SQL运行结果的情况之一。一个简单的解决 方案是在服务器条件允许的情况下采用Access OLE DB Provider作为数据库引擎。下面总结一下常见数据库系统LIKE子句匹配符的异同点:1、匹配 单个字符 和 零到多个字符 的两种基本匹配符。My SQL中使用_匹配单个字符,%匹配零到多个字符。SQLite中使用_匹配单个字符,%匹配零到多个字符。Oracle中使用_匹配单个字符,%匹配零到多个字符。MS SQL中使用_匹配单个字符,%匹配零到多个字符。Access中分为两种情况:-&Microsoft Jet引擎中使用_或?匹配单个字符,%或*匹配多个字符。-&Access软件和DAO中使用?匹配单个字符,*匹配多个字符。2、匹配 特定字符 的 复合匹配符My SQL不支持复合匹配符,使用REGEXP(RLIKE)子句。SQLite不支持复合匹配符,使用REGEXP子句。Oracle中分为两种情况:-&Oracle 10g以前使用[]匹配特定字符,[^]匹配非特定字符。-&Oracle 10g之后不再支持符合匹配符,使用regexp_like函数。MS SQL中使用[]匹配特定字符,[^]匹配非特定字符。Access中使用[]匹配特定字符,[!]匹配非特定字符,#匹配任意数字(即[0-9])。3、匹配 匹配符 的自身匹配符My SQL中分为两种情况:-&当NO_BACKSLASH_ESCAPES未激活时使用\%匹配%,\_匹配_,\\匹配\,并支持ESCAPE子句修改转义符。-&当NO_BACKSLASH_ESCAPES被激活时无法匹配%和_,除非使用ESCAPE子句设置转义符。SQLite中无法匹配%和_,除非使用ESCAPE子句设置转义符。Oracle中使用[%]匹配%,[_]匹配_,[[]匹配[,并支持ESCAPE子句设置转义符。MS SQL中使用[%]匹配%,[_]匹配_,[[]匹配[,并支持ESCAPE子句设置转义符。Access中使用[%]匹配%(在需要时),[*]匹配*,[_]匹配_(在需要时),[?]匹配?,[[]匹配[。
请各位遵纪守法并注意语言文明拒绝访问 | www.excelpx.com | 百度云加速
请打开cookies.
此网站 (www.excelpx.com) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(44ac2dc-ua98).
重新安装浏览器,或使用别的浏览器在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
通过WEB界面向数据库中
不定期的全量导入一份包含百万级数据量的Excle表
现在应用在本机测试过程中,开发机内存16G,导入无压力
服务器部署后,远程web导入,页面假死,查看服务端进程已down
服务器配置:centos6.5 1核1g
导入控件:poi
求小伙伴指导如何解决
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
1、首先确认是上传还是导入时导致页面假死。我推测应该是上传,因为你的excel文件应该不小,通过网络上传需要花费大量的时间,有可能导致web服务器超时设置,本地测试,上传肯定要比网络快N倍。
2、如果不是上传问题,那就是应该是导入数据库出现问题,如果你是一条条的插入,那效率肯定不高,可以采用batch insert 或者 load data infile 的方式。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
先debug一下,看看主要时间花在哪一步了,然后再针对做出优化。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
进程挂了,jstack不起作用了。
你可以远程debug。
还有你的测试环境和线上环境差异太大,不具备参考价值。
建议拿一台和先上环境一致的测试机,并且远程上传excel来测试。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
如楼上所言,你需要先确定是哪一步导致服务器宕机,
是上传文件太大服务器内存溢出还是导入的时候挂掉的.
如果服务器没有提供core dump供出错分析的话,
自己在程序里多打印几处log来确定崩溃的位置,
知道了挂掉的原因再针对性的处理比较好.
这种通常都是OOM导致的.
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。

我要回帖

更多关于 oracle数据库基本语句 的文章

 

随机推荐