Plsql 在PL/SQL中垂直旋转字符串

Plsql 在PL/SQL中垂直旋转字符串,plsql,Plsql,晚上好 有没有一种方法可以使用PL/SQL过程或函数垂直旋转字符串? 我已经找到了很多解决办法,比如 c e l l 但我需要一个不同的结果,比如这个: 提前谢谢你 试试这个。希望这有帮助 --Horizontal to vertical SELECT SUBSTR(A.col1,LEVEL,1) str FROM ( SELECT 'avrajit' col1 FROM dual )A CONNECT BY level <= LENGTH(a.col1); --Vert

晚上好

有没有一种方法可以使用PL/SQL过程或函数垂直旋转字符串? 我已经找到了很多解决办法,比如

c
e
l
l
但我需要一个不同的结果,比如这个:


提前谢谢你

试试这个。希望这有帮助

--Horizontal to vertical
SELECT SUBSTR(A.col1,LEVEL,1) str
FROM
  ( SELECT 'avrajit' col1 FROM dual
  )A
  CONNECT BY level <= LENGTH(a.col1);


--Verticle to horizontal

SELECT listagg(A.col1) WITHIN GROUP(
ORDER BY a.col2) str
FROM
  (SELECT 'a' col1,1 col2 FROM dual
  UNION ALL
  SELECT 'v' col1,2 col2 FROM dual
  UNION ALL
  SELECT 'r' col1,3 col3 FROM dual
  UNION ALL
  SELECT 'a' col1,4 col4 FROM dual
  )A;

试试这个。希望这有帮助

--Horizontal to vertical
SELECT SUBSTR(A.col1,LEVEL,1) str
FROM
  ( SELECT 'avrajit' col1 FROM dual
  )A
  CONNECT BY level <= LENGTH(a.col1);


--Verticle to horizontal

SELECT listagg(A.col1) WITHIN GROUP(
ORDER BY a.col2) str
FROM
  (SELECT 'a' col1,1 col2 FROM dual
  UNION ALL
  SELECT 'v' col1,2 col2 FROM dual
  UNION ALL
  SELECT 'r' col1,3 col3 FROM dual
  UNION ALL
  SELECT 'a' col1,4 col4 FROM dual
  )A;

可以使用substr中的负数位置 如果position为负数,则Oracle从char的末尾向后计数。


可以使用substr中的负数位置 如果position为负数,则Oracle从char的末尾向后计数。


我不打算声称我理解这一点,但我结合并调整了我发现的几个例子,并得出了这一结论,这是值得的。嘿,你想要什么?哈哈

运行时,它会生成一些HTML代码。将代码保存到以.html结尾的文件中,然后双击以在浏览器中打开。您将看到预期的输出。也许你可以进一步调整,以得到你所期望的

此代码:

select dbms_xmlgen.getxmltype('select ''Cell'' from dual').transform(XMLType(
'<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">

<html><head><style>
p {
    background-color: white;
    /* Rotate div */
    -ms-transform: rotate(-90deg); /* IE 9 */
    -webkit-transform: rotate(-90deg); /* Chrome, Safari, Opera */
    -moz-transform: rotate(-90.0deg);
    transform: rotate(-90deg);
}
</style></head>
  <body>
   <table border="0">
     <tr bgcolor="white">
      <xsl:for-each select="/ROWSET/ROW[1]/*">
       <th><p><xsl:value-of select="text()"/></p></th>
      </xsl:for-each>
     </tr>
   </table>
   </body>
</html>
  </xsl:template>
</xsl:stylesheet>')).getclobval() as html from dual;
生成此HTML。按“运行代码段”按钮查看输出:

p{ 背景色:白色; /*旋转div*/ -ms变换:旋转-90度;/*IE 9*/ -webkit变换:旋转-90度;/*铬合金、Safari、Opera*/ -moz变换:旋转-90.0度; 变换:旋转-90度; }
Cell

我不想说我理解这一点,但我结合并调整了我找到的几个例子,并得出了这个结论,这是值得的。嘿,你想要什么?哈哈

运行时,它会生成一些HTML代码。将代码保存到以.html结尾的文件中,然后双击以在浏览器中打开。您将看到预期的输出。也许你可以进一步调整,以得到你所期望的

此代码:

select dbms_xmlgen.getxmltype('select ''Cell'' from dual').transform(XMLType(
'<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">

<html><head><style>
p {
    background-color: white;
    /* Rotate div */
    -ms-transform: rotate(-90deg); /* IE 9 */
    -webkit-transform: rotate(-90deg); /* Chrome, Safari, Opera */
    -moz-transform: rotate(-90.0deg);
    transform: rotate(-90deg);
}
</style></head>
  <body>
   <table border="0">
     <tr bgcolor="white">
      <xsl:for-each select="/ROWSET/ROW[1]/*">
       <th><p><xsl:value-of select="text()"/></p></th>
      </xsl:for-each>
     </tr>
   </table>
   </body>
</html>
  </xsl:template>
</xsl:stylesheet>')).getclobval() as html from dual;
生成此HTML。按“运行代码段”按钮查看输出:

p{ 背景色:白色; /*旋转div*/ -ms变换:旋转-90度;/*IE 9*/ -webkit变换:旋转-90度;/*铬合金、Safari、Opera*/ -moz变换:旋转-90.0度; 变换:旋转-90度; }
Cell

谢谢,但我需要一个与图像上的结果稍有不同的结果谢谢,但我需要一个与图像上的结果稍有不同的结果但我不需要拆分一个单词,我只需要将其旋转90度。但我不需要拆分一个单词,我只需要将其旋转90度。你不能只在pl/sql中执行你想要的操作。这是一个界面问题。开发应用程序?报告。。。我使用的是BIRT,它有一个用于垂直文本的插件,为垂直文本创建一个图像,打印时看起来非常难看。使用报表过程获取报表标题将更容易、更清晰。。。太糟糕了,这是不可能的。你不能只在pl/sql中做你想做的事情。这是一个界面问题。开发应用程序?报告。。。我使用的是BIRT,它有一个用于垂直文本的插件,为垂直文本创建一个图像,打印时看起来非常难看。使用报表过程获取报表标题将更容易、更清晰。。。可惜这是不可能的。这是一个很好的解决方案!没错,这太好了。。。谢谢你,这在HTML中工作,但不适用于MS Word…@alecsia你没有说你需要它在MS Word中工作。我不知道它不会,不幸的是。。。报表设计器无法识别转换。这是一个很好的解决方案!没错,这太好了。。。谢谢你,这在HTML中工作,但不适用于MS Word…@alecsia你没有说你需要它在MS Word中工作。我不知道它不会,不幸的是。。。报表设计器无法识别转换。