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()函数来验证Customers表中CITY列的每个值是否存在有效的文本指针 -

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.
sql-text-image-functions.htm
广告

© . All rights reserved.