|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
采用DBaaS解决方案,他们也可以使用同大企业一样的技术。在大型组织中,DBaaS可以提供部门级解决MySQL学习教程,而无需IT部门和采购部门的介入,提供更快和更容易的方法来实现小型解决方案。oracle|对照|字符串在ORACLE中,将空字符串视为NULL,任何值与NULL对照了局都为NULL。云云一来,在对照两个字符串的时分就会呈现不测。请看以下的例子:
DECLARE
iVARCHAR2(10):=NULL;
vVARCHAR2(10):=ABC;
BEGIN
IF(i=v)THEN
DBMS_OUTPUT.PUT_LINE(相称);
ELSE
DBMS_OUTPUT.PUT_LINE(不等);
ENDIF;
END;
请你用你伶俐的思想判别一下,了局应当是甚么?很简单就能够得出了局:不等。很好,你是对的。在SQLPLUS上运转的了局和你想的一样。那末我改一下程序,你再判别一下:
DECLARE
iVARCHAR2(10):=NULL;
vVARCHAR2(10):=ABC;
BEGIN
IF(iv)THEN
DBMS_OUTPUT.PUT_LINE(不等);
ELSE
DBMS_OUTPUT.PUT_LINE(相称);
ENDIF;
END;
看上往和第一个程序没有太年夜的不同,很简单就得出了局:不等。呵呵。你断定了局就是这个吗?那末请你在SQLPLUS测试一下,来考证你是准确的。很惋惜,准确的了局应当是:相称。是否是很惊奇?正如入手下手所说的:任何值与NULL对照了局都为NULL。即在第一个程序中的i=v对照的了局应当是NULL,而第二个程序中的iv对照的了局也是NULL。当IF布局中的前提为NULL时,将跳过以后的分支进进到ELSE大概是停止。不可吗?那你运转一下以下的程序将能够比及考证:
BEGIN
IF(NULL)THEN
DBMS_OUTPUT.PUT_LINE(NOTNULL);
ELSE
DBMS_OUTPUT.PUT_LINE(NULL);
ENDIF;
END;
了局输入的是:NULL。
那末应当如何准确的对照两个字符串呢?
起首我先说说怎样断定两个字符串相称(仍是用上边的两个变量i和v)。
1、当i和v都为NULL的时分,以为i和v相称。iISNULLANDvISNULL(不要写成如许:i=v。从上边的剖析我们能够晓得如许写的了局为NULL)。
2、当i和v中只要一个为NULL,一定不相称。
3、当i和v都不为NULL的时分,我们就能够用‘=’号来判别它们是不是相称。iISNOTNULLANDvISNOTNULLANDi=v。
依据以上三点,我们能够得出判别i和v相称的前提表达式:iISNULLANDvISNULLORiISNOTNULLANDvISNOTNULLANDi=v。
那末两个字符串不相称的前提表达式只必要判别相称的表达式为FALSE就能够了。
把判别两个字符串是不是相称的功效写成函数:
CREATEORREPLACEFUNCTIONISEQUAL
(
VAR1INVARCHAR2,
VAR2INVARCHAR2
)
RETURNNUMBER--0:不等1:相称-1:毛病
IS
IF(VAR1ISNULLANDVAR2ISNULLORVAR1ISNOTNULLANDVAR2ISNOTNULLANDVAR1=VAR2)THEN
RETURN1;
ELSE
RETURN0;
ENFIF;
BEGIN
EXCEPTION
WHENOTHERSTHEN
RETURN-1;
END;
以下上测试程序:
DECLARE
VAR1VARCHAR2(10):=NULL;
VAR2VARCHAR2(10):=A;
BEGIN
IF(isequal(VAR1,VAR2)=1)THEN
DBMS_OUTPUT.PUT_LINE(=);
ELSE
DBMS_OUTPUT.PUT_LINE();
ENDIF;
END;
RDBMS并非没有局限性。它们难以扩展,需要大量的资源来配置和维护,比如时间、硬件和人力。同样,它们往往遵循峰值性能模型,这就要求系统按照峰值容量来配置可用性,而不考虑典型的数据使用情况。 |
|