Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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
Plsql 如何将sql变量划分为2_Plsql - Fatal编程技术网

Plsql 如何将sql变量划分为2

Plsql 如何将sql变量划分为2,plsql,Plsql,我在sql中有一个名为address的字段,它是80个字符。 我想把这个字段分为两个字段addr1和addr2,每个字段40个字符。 我该怎么做呢。这是针对T-SQL的,但对于PL/SQL来说没有什么不同 declare @yourVar varchar(80) select substring(@yourVar, 1, 40), substring(@yourVar, 40, 40) 这是针对T-SQL的,但对于PL/SQL来说没有什么不同 declare @yourVar varchar(

我在sql中有一个名为address的字段,它是80个字符。 我想把这个字段分为两个字段addr1和addr2,每个字段40个字符。
我该怎么做呢。

这是针对T-SQL的,但对于PL/SQL来说没有什么不同

declare @yourVar varchar(80)
select substring(@yourVar, 1, 40), substring(@yourVar, 40, 40)

这是针对T-SQL的,但对于PL/SQL来说没有什么不同

declare @yourVar varchar(80)
select substring(@yourVar, 1, 40), substring(@yourVar, 40, 40)

对于plsql,它是substr(),所以选择substr(addr,1,40)作为addr1,substr(addr,40)作为addr2 from…

对于plsql,它是substr(),所以选择substr(addr,1,40)作为addr1,substr(addr,40)作为addr2 from…

我认为如果您将该表改为两列而不是一列,您的模式会更好。与解析当前值相比,我更喜欢该解决方案。

我认为如果您将该表更改为两列而不是一列,您的模式会更好。我更喜欢解析当前值的解决方案。

< P>暴力破解40位的80个字符值,在一个词的中间会有断裂的危险。您可能需要执行以下操作:

  • 用一个空格替换所有的空白
  • 在位置40处或之前找到最后一个空格
  • 将所有内容放在第一个结果字段的空白处之前
  • 在第二个结果字段中,将该空格后的所有内容都放在空白处
  • 上述操作的具体细节将取决于您可以使用的工具(例如,仅SQL,或从一个数据库读取数据并使用单独的程序写入另一个数据库,等等)


    有可能的是,80字值可以以这样的方式填充,即“单词”之间的中断将需要一个结果值超过40个字符以避免截断。

    < Pr>在位置40处砍掉80个字符值的蛮力运行在一个词的中间断裂的风险。您可能需要执行以下操作:

  • 用一个空格替换所有的空白
  • 在位置40处或之前找到最后一个空格
  • 将所有内容放在第一个结果字段的空白处之前
  • 在第二个结果字段中,将该空格后的所有内容都放在空白处
  • 上述操作的具体细节将取决于您可以使用的工具(例如,仅SQL,或从一个数据库读取数据并使用单独的程序写入另一个数据库,等等)


    80个字符的值可能会以这样一种方式填充,即在“字”之间断开将要求其中一个结果值的长度超过40个字符,以避免截断。

    +1(在oracle中,函数为SUBSTR)+1(在oracle中,函数为SUBSTR)我们必须从wat中选择。我已经从1个游标中选择了addr变量,需要将其除以。因此,如果您有一个变量addr,我假设您正在编写一个存储过程,因此声明两个变量addr1和addr2,并使用addr1:=substr(addr,1,40);addr2:=substr(addr,40);嗨,我们必须从wat中选择。我已经从1个游标中选择了addr变量,需要将其除以。因此,如果您有一个变量addr,我假设您正在编写一个存储过程,因此声明两个变量addr1和addr2,并使用addr1:=substr(addr,1,40);addr2:=substr(addr,40);