SQL TEXTVALID()函数

SQL TEXTVALID()函数

SQL的 TEXTVALID() 函数用于验证指针的值。

它接受两个参数: table.columntext_ptr ,并检查指定的文本指针是否有效。如果指定的文本指针有效,则返回1;否则返回0。如果指定的列是不同的数据类型(如varchar、int等),则会抛出错误。

注意 - 文本列的标识符必须包括表名。没有有效的文本指针情况下,不能使用 update-text、write-text或read-text

语法

以下是SQL TEXTVALID() 函数的语法 –

TEXTVALID ( 'table.column' ,text_ ptr )

参数

  • table - 这是将要使用的表的名称。
  • column - 这是将被用来验证的表的列。
  • text_ptr - 这是需要检查的文本指针。

返回值

此函数返回一个整数值(1表示有效,0表示无效)。

示例

如果指定的文本指针是一个 有效的文本指针 ,则 TEXTVALID() 函数返回 1

假设我们使用 CREATE 语句创建了一个名为 Customers 的表:

CREATE TABLE CUSTOMERS(    
ID INT NOT NULL,    
NAME VARCHAR (20) NOT NULL,    
AGE INT NOT NULL,    
ADDRESS CHAR (25) ,    
SALARY DECIMAL (18, 2),
PIN NTEXT,
CITY TEXT);

现在,让我们使用以下的INSERT语句向 Customers 表中插入一些记录:

INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY, PIN, CITY) VALUES (1, 'Ramesh', 32, 'Ahmedabad', 2000.00, '380001', 'Jamalpur');
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY, PIN, CITY) VALUES (2, 'Khilan', 25, 'Delhi', 1500.00,'110006','Chandni Chowk' );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY, PIN, CITY) VALUES (3, 'kaushik', 23, 'Kota', 2000.00,'325001', 'Aamli'); 
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY, PIN, CITY) VALUES (4, 'Chaitali', 25, 'Mumbai', 6500.00,'400002', 'Kalbadevi' );

下面的SQL查询验证 Customers 表中 PIN 列的每个值是否存在有效的文本指针 –

SELECT ID, NAME, PIN, TEXTVALID('CUSTOMERS.PIN', TEXTPTR(PIN)) AS PIN_VALID_POINTER FROM CUSTOMERS;

输出

上述SQL查询产生以下输出−

+----+------------+-------------------------------+
| ID | NAME       | PIN       | PIN_VALID_POINTER | 
+----+------------+-------------------------------+
|  1 | Ramesh     | 380001    |  1                | 
|  2 | Khilan     | 110006    |  1                |
|  3 | kaushik    | 325001    |  1                |
|  4 | Chaitali   | 400002    |  1                |
+----+------------+-----------+-------------------+

示例

您还可以将 TEXT数据类型 的列作为参数传递给SQL的 TEXTPTR() 函数,并使用 TEXTVALID() 函数来验证列中每个值是否存在有效的文本指针 CITYCustomers 表。

SELECT ID, NAME, CITY, TEXTVALID('CUSTOMERS.CITY', TEXTPTR(CITY)) AS CITY_VALID_POINTER FROM CUSTOMERS;

输出

在执行上述语句后,将产生以下输出内容:

+----+------------+---------------+--------------------+ 
| ID | NAME       | CITY          | CITY_VALID_POINTER | 
+----+------------+---------------+--------------------+ 
|  1 | Ramesh     | Jamalpur      |  1                 | 
|  2 | Khilan     | Chandni Chowk |  1                 |
|  3 | kaushik    | Aamli         |  1                 |
|  4 | Chaitali   | Aamli         |  1                 |
+----+------------+---------------+--------------------+

示例

如果指定的文本指针不是一个有效的文本指针,则TEXTVALID()函数返回0。

下面的SQL查询用于验证每个 Customers 表中 NAME 列的值是否存在有效的文本指针。

SELECT ID, NAME, TEXTVALID('CUSTOMERS.NAME', TEXTPTR(CITY)) AS NAME_VALID_POINTER FROM CUSTOMERS;

输出

+----+------------+--------------------+ 
| ID | NAME       | NAME_VALID_POINTER | 
+----+------------+--------------------+ 
|  1 | Ramesh     | 0                  |    
|  2 | Khilan     | 0                  |   
|  3 | kaushik    | 0                  |  
|  4 | Chaitali   | 0                  |   
+----+------------+--------------------+

示例

如果我们将 DECIMAL数据类型 的列作为此函数的参数传递,它将抛出错误。

在下面的示例中,我们将列 SALARY(数据类型为decimal) 作为 TEXTPTR() 函数的参数传递,并使用SQL的 TEXTVALID() 函数验证每个值在 Customers 表的 SALARY 列中是否存在有效的文本指针。

SELECT ID, SALARY,TEXTVALID('CUSTOMERS.SALARY', TEXTPTR(SALARY)) AS NAME_VALID_POINTER FROM CUSTOMERS;

输出

在执行上述语句时,会产生以下输出:

Argument data type decimal is invalid for argument 1 of textptr function.

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程