仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 642|回复: 8
打印 上一主题 下一主题

[学习教程] MYSQL网页编程之Oracle毛病案例:ORA-00922

[复制链接]
飘飘悠悠 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:22:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
DBaaS解决方案既可以解决这些问题,又能为客户节约资金。相反作为解决方案提供商,采用DBaaS模式似乎就并不那么有吸引力了,因为与企业内部署软件的解决方案相比,DBaaS意味着更低的利润。<pstyle="TEXT-INDENT:2em">ORA-00922missingorinvalidoption
0RA-00922:丧失大概有效的选项
  CauseAninvalidoptionwasspecifiedindefiningacolumnorstorageclause.ThevalidoptioninspecifyingacolumnisNOTNULLtospecifythatthecolumncannotcontainanyNULLvalues.Onlyconstraintsmayfollowthedatatype.SpecifyingamaximumlengthonaDATEorLONGdatatypealsocausesthiserror.

  ActionCorrectthesyntax.Removetheerroneousoptionorlengthspecificationfromthecolumnorstoragespecification.

  案例一:Oracle明文暗码毛病
  受影响体系:
  OracleOracle10gApplicationServer9.0.4.0
  OracleOracle10gApplicationServer10.1.0.2
  形貌:
  OracleDatabase是一款贸易性子年夜型数据库体系。
  Oracle10g存在包括明文暗码的全局可读文件,当地打击者能够使用这个毛病取得对数据库的会见。
  SYSMAN帐户的暗码可在$ORACLE_HOME/hostname_sid/sysman/config/emoms.properties文件中取得,此文件全局可读。
  别的假如安装Oracle10g时供应SYS,SYSTEM,DBSNMP和SYSMAN帐户暗码不异,而且暗码有惊讶号(如f00bar!!),那末当设置SYSMAN和DBSNMP暗码时DB安装会呈现毛病,毛病信息"postDBCreation.log"会纪录暗码:
  alteruserSYSMANidentifiedbyf00bar!!accountunlock
ERRORatline1:
ORA-00922:missingorinvalidoption
  alteruserDBSNMPidentifiedbyf00bar!!accountunlock
ERRORatline1:
ORA-00922:missingorinvalidoption
  <*DavidLitchfield(david@nextgenss.com)

  链接:http://marc.theaimsgroup.com/?  l=bugtraq&m=110382247308064&w=2
  *>
  倡议:
  厂商补钉:
  Oracle
  ------
  ORACLE已公布patch(#68)来修改此毛病:
  http://metalink.oracle.com/


案例二:置换变量
<p>  我才刚入手下手利用Oracle的产物,我在实行上面两条命令的时分碰到了成绩:ACCEPT和PROMPT。我已变动了行的按次,偶然候放在CHAR中,偶然候删除,偶然候放在PROMPT中,偶然候删除。不管我怎样做仍是收到毛病信息。我乃至试过把ACCEPT和PROMPT放在BEGIN的前后。
我想做的事变是如许的。在剧本的入手下手,我从键盘读取入手下手和停止日期,然后在程序的次要部分,我从一个表中利用SELECT读取,并测试看日期是不是在键盘输出的两个日期之间。如今当我在SQL*Plus中实行/编译剧本的时分,我失掉的毛病信息是ORA-00922。
  1. PROMPTACCEPTin_beg_datePROMPTEnterbeginningextractdatemm/dd/yyPROMPTACCEPTin_end_datePROMPTEnterendingextractdatemm/dd/yyDECLAREbeg_dateVARCHAR2(8):=&in_beg_date;end_dateVARCHAR2(8):=&in_end_date;beg_dteDATE;end_dteDATE;...BEGINbeg_dte:=TO_DATE(beg_date,MM/DD/YY);end_dte:=TO_DATE(end_date,MM/DD/YY);...IF(outrec_abs_date>=beg_dteand<=end_dte)THEN...
复制代码
  说假话,看起来你对PROMPT和ACCEPT有一个很好的了解。PROMPT告知SQL*Plus在屏幕上誊写一行笔墨。你在这里利用了两个PROMPT命令;每一个命令都在屏幕上打印一个空行,这关于垂直间距很有优点。ACCEPT命令是守候用户输出一个置换变量的值。ACCEPT命令中可选的PROMPT子句在用户输出数值的统一行中显现了一条信息。你在PL/SQL块的表面安排PROMPT和ACCEPT是准确的:他们是SQL*Plus命令,不是PL/SQL。
  你大概注重到当你运转这个剧本的时分,每个具有置换变量的行都引发了屏幕上的两行输入,比方:
old3:beg_dateVARCHAR2(8):=&in_beg_date;
new3:beg_dateVARCHAR2(8):=09/01/03;
  这就显现了SQL*Plus在看到一行包含了置换变量的代码的时分所作的事情:他用变量的数值(以&开首)置换了变量的名字。这就像你在文本编纂器,比方记事本中,用查找和置换一样,将一个字符串的每一个呈现(这里是&in_beg_date)都交换成了另外一个字符串(09/09/03)。“本来”的行就是在代码中的模样。“新”的行是将要实行的模样。假如你实行了"beg_dateVARCHAR2(8):=09/01/03;"语句,会产生甚么?SQL*Plus会创立一个字符串变量而且用":="右边的数值来举行初始化。在这个案例中,它是一个数字表达式,那末SQL*Plus就会检测"(9/1)/3"这个表达式,并将谜底写为3。你实践的意义是:
  beg_dateVARCHAR2(8):=&in_beg_date;
  end_dateVARCHAR2(8):=&in_end_date;
  单引号是相当主要的。
  本文国际http://searchoracle.techtarget.com/

解决方案提供商应记住DBaaS通常仅仅是解决方案的一部分。客户之所以与他们的解决方案提供商协同工作,不仅是因为他们出售的产品,而且还因为他们所提供的服务。
小魔女 该用户已被删除
沙发
发表于 2015-1-19 09:36:10 | 只看该作者
原来公司用过MYSQL自己也只是建个表写个SQL
小妖女 该用户已被删除
板凳
发表于 2015-1-26 22:28:48 | 只看该作者
以前的DTS轻盈简单。但是现在的SSIS虽然功能强大了很多,但是总是让人感觉太麻烦。看看论坛中询问SSIS的贴子就知道。做的功能太强大了,往往会有很多用户不会用了
冷月葬花魂 该用户已被删除
地板
发表于 2015-2-4 22:10:24 | 只看该作者
可以动态传入参数,省却了动态SQL的拼写。
灵魂腐蚀 该用户已被删除
5#
发表于 2015-2-10 21:48:36 | 只看该作者
其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!
愤怒的大鸟 该用户已被删除
6#
发表于 2015-3-1 16:01:45 | 只看该作者
呵呵,这就是偶想说的
飘飘悠悠 该用户已被删除
7#
 楼主| 发表于 2015-3-10 20:23:36 | 只看该作者
索引视图2k就有。但是2005对其效率作了一些改进但是schema.viewname的作用域真是太限制了它的应用面。还有一大堆的环境参数和种种限制都让人对它有点却步。
谁可相欹 该用户已被删除
8#
发表于 2015-3-17 10:11:34 | 只看该作者
这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?
精灵巫婆 该用户已被删除
9#
发表于 2015-3-24 07:19:12 | 只看该作者
如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-29 23:50

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表