本篇内容介绍了“怎么判断数据库集合的密集性”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

我创建了这个工具函数来显示一个布尔型变量的值:

CREATEORREPLACEPROCEDUREplch_bpl(valINBOOLEAN)ISBEGINDBMS_OUTPUT.put_line(CASEvalWHENTRUETHEN'TRUE'WHENFALSETHEN'FALSE'ELSE'NULL'END);ENDplch_bpl;/

下列的选项中都包含了下面这个函数的实现代码:

CREATEORREPLACEFUNCTIONplch_is_dense(numbers_inINDBMS_SQL.number_table)RETURNBOOLEAN

我写了另一个帮助过程来测试这个 plch_is_dense 函数:

CREATEORREPLACEPROCEDUREplch_test_is_denseISl_numbersDBMS_SQL.number_table;BEGINl_numbers(1000):=1;l_numbers(3000):=1;plch_bpl(plch_is_dense(l_numbers));l_numbers.delete;l_numbers(2):=1;l_numbers(3):=1;plch_bpl(plch_is_dense(l_numbers));END;/

哪些选项创建的plch_is_dense使得plch_test_is_dense在执行之后会显示这两行文本?

FALSETRUE

(A)

ISBEGINRETURNnumbers_in.COUNT=(numbers_in.LAST-numbers_in.FIRST);END;

(B)

ISl_numberNUMBER;BEGINFORindxINnumbers_in.FIRST..numbers_in.LASTLOOPl_number:=numbers_in(indx);ENDLOOP;RETURNTRUE;EXCEPTIONWHENNO_DATA_FOUNDTHENRETURNFALSE;END;

(C)

ISl_numberNUMBER;BEGINFORindxIN1..numbers_in.COUNTLOOPl_number:=numbers_in(indx);ENDLOOP;RETURNTRUE;EXCEPTIONWHENNO_DATA_FOUNDTHENRETURNFALSE;END;

(D)

ISBEGINRETURNnumbers_in.COUNT=(numbers_in.LAST-numbers_in.FIRST+1);END;

运行结果如下

(A)

CREATEORREPLACEFUNCTIONplch_is_dense(numbers_inINDBMS_SQL.number_table)RETURNBOOLEANISBEGINRETURNnumbers_in.COUNT=(numbers_in.LAST-numbers_in.FIRST);END;/

SQL>execplch_test_is_dense;FALSEFALSEPL/SQLproceduresuccessfullycompletedSQL>

(B)

CREATEORREPLACEFUNCTIONplch_is_dense(numbers_inINDBMS_SQL.number_table)RETURNBOOLEANISl_numberNUMBER;BEGINFORindxINnumbers_in.FIRST..numbers_in.LASTLOOPl_number:=numbers_in(indx);ENDLOOP;RETURNTRUE;EXCEPTIONWHENNO_DATA_FOUNDTHENRETURNFALSE;END;/

SQL>execplch_test_is_dense;FALSETRUEPL/SQLproceduresuccessfullycompletedSQL>

(C)

CREATEORREPLACEFUNCTIONplch_is_dense(numbers_inINDBMS_SQL.number_table)RETURNBOOLEANISl_numberNUMBER;BEGINFORindxIN1..numbers_in.COUNTLOOPl_number:=numbers_in(indx);ENDLOOP;RETURNTRUE;EXCEPTIONWHENNO_DATA_FOUNDTHENRETURNFALSE;END;/

SQL>execplch_test_is_dense;FALSEFALSEPL/SQLproceduresuccessfullycompletedSQL>

(D)

CREATEORREPLACEFUNCTIONplch_is_dense(numbers_inINDBMS_SQL.number_table)RETURNBOOLEANISBEGINRETURNnumbers_in.COUNT=(numbers_in.LAST-numbers_in.FIRST+1);END;/

SQL>execplch_test_is_dense;FALSETRUEPL/SQLproceduresuccessfullycompletedSQL>

10-31答案BD.对于非密集型的COLLECTION访问不能从1开始,而是要用FIRST方法。访问不存在的元素会引发NO_DATA_FOUND异常。

“怎么判断数据库集合的密集性”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!