Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查sql视图中的特殊字符_Sql_Sql Server_Sql View - Fatal编程技术网

检查sql视图中的特殊字符

检查sql视图中的特殊字符,sql,sql-server,sql-view,Sql,Sql Server,Sql View,嗨,我在修复一个特定的场景,我有一个视图,它是通过连接多个表创建的,要求是我必须找到该视图中的列是否将返回特殊字符 SELECT SI.ShipmentId, CASE WHEN SA.AddressType = 1 THEN 'SH' ELSE 'CN' END AS AddressType, SI.Pieces, SI.PalletCount, SI.Weight, SI.

嗨,我在修复一个特定的场景,我有一个视图,它是通过连接多个表创建的,要求是我必须找到该视图中的列是否将返回特殊字符

SELECT SI.ShipmentId,
       CASE
         WHEN SA.AddressType = 1 THEN 'SH'
         ELSE 'CN'
       END AS AddressType,
       SI.Pieces,
       SI.PalletCount,
       SI.Weight,
       SI.UserDescription,
       SI.Class,
       SA.CompanyName,
       SA.Street,
       SA.City,
       SA.State,
       SA.ZipCode,
       CASE
         WHEN SA.Country = 1 THEN 'USA'
         WHEN SA.Country = 2 THEN 'CANADA'
       END AS Country,
       SA.ContactPerson,
       Cast(Replace(Replace(Replace(Replace(SA.Phone, ')', ''), '(', ''), '-', ''), ' ', '') AS VARCHAR(25)) AS Phone,
       S.PoNo,
       S.EstimatedDueDate,
       Cast(S.ShipmentReadyTime AS VARCHAR(10)) AS ShipmentReadyTime,
       Cast(S.ShipmentCloseTime AS VARCHAR(10)) AS ShipmentCloseTime,
       B.BOLNumber,
       S.HazMatEmergencyNo
FROM   CarrierRate.Shipment AS S
       INNER JOIN CarrierRate.BOL AS B
               ON B.ShipmentId = S.ID
       INNER JOIN CarrierRate.ShipmentItems AS SI
               ON SI.ShipmentId = S.ID
       INNER JOIN CarrierRate.ShipmentAddresses AS SA
               ON SA.ShipmentId = S.ID
       INNER JOIN CarrierRate.Carriers AS C
               ON C.ID = S.CarrierId
WHERE  ( SI.AccessorialId = 1 )
       AND ( SA.AddressType IN ( 1, 2 ) ) 
这就是那个视图,我只想知道所有的列都有什么特殊的字符作为它的数据。 例如:我有
SA.CompanyName
作为列之一,我必须检查该列是否可以用特殊字符填充?
请告诉我可能的解决方案,我不知道。

您需要查看表/列/表达式的列类型,它们构成您感兴趣的视图的列。假设它们被定义为某种形式的
text
varchar
,则它们可以包含特殊字符,除非这些列/表上存在某种形式的约束。

您具体检查哪些特殊字符?@Akash:特殊字符,如“!@#*&%”你的问题仍然模棱两可。你是说永远?或者使用您当前表中的数据?@DwayneTowell:这是一个很好的问题,我想检查一下。您使用的是哪种数据库管理系统?博士后?Oracle?但是如何从查询中单独检查,以及如何停止列获取这些特殊字符?您必须提供表定义。