2017-05-30 15 views
0

おはよう!PL/SQLで文字列を垂直方向に回転

PL/SQLプロシージャまたはファンクションを使用して文字列を垂直方向に回転する方法はありますか? 私は

c 
e 
l 
l 

のようなものを取得するための多くのソリューションを発見したが、私はこのように、異なる結果が必要になります。

https://i.stack.imgur.com/ywerX.jpg

は、事前にありがとうございます!

+0

pl/sqlでのみ実行することはできません。それはインターフェイスの質問です。アプリケーションの開発? –

+0

レポート...私はBIRTを使用しています。縦書き用のプラグインがあり、縦書き用の画像を作成し、印刷すると絶対に醜いように見えます。レポート手順を使用してレポートヘッダーを取得する方がはるかに簡単できれいになるでしょう...それは不可能です。 – alecsia

答えて

1

これを試してください。お役に立てれば。

--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; 
+0

ありがとうございますが、別の結果が必要です)画像のように – alecsia

0

あなたは位置が負の場合、Oracleがcha​​rの終わりから逆方向にカウントsubstr に負の位置を使用することができます。 (see also doc.)

SELECT SUBSTR(str,0 - LEVEL,1) str 
FROM 
    ( 
    SELECT 'Cell' as str FROM dual 
) 
    CONNECT BY level <= LENGTH(str) 
; 
+0

単語を分割する必要はありません。ちょうど90度回転するだけです。 – alecsia

1

私はこれを理解主張するつもりはありませんが、私は私が発見し、これに到着し、何の価値のための例をいくつか組み合わせて微調整。名前:ねえ、whadaya nuthin 'をしたいですか? lol

実行すると、いくつかのHTMLコードが生成されます。そのコードを.htmlで終わるファイルに保存し、ダブルクリックしてブラウザで開きます。期待どおりの出力が表示されます。たぶんあなたはこれをさらに微調整して、あなたが期待するものを得ることができますか?

このコード:だから私はこのことができます疑う

<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"><th><p>Cell</p></th></tr></table></body></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(押して出力を参照するには、 "ファイル名を指定して実行コードスニペット" ボタン)を生成しますあなたはどんな速度でも面白かったです。

+0

これはすばらしい解決策です! –

+0

本当に、これはとても良かったです...ありがとう、これはHTMLで動作しますが、MS Wordではありません... – alecsia

+0

@alecsiaあなたはMSの単語で動作する必要があるとは言いませんでした。 –

関連する問題