Ich möchte eine T-SQL-Abfrage schreiben, in der ich eine Zeichenfolge als Base64-Zeichenfolge codiere. Überraschenderweise kann ich keine nativen T-SQL-Funktionen für die Base64-Codierung finden. Existiert eine native Funktion? Wenn nicht, wie lässt sich Base64 am besten in T-SQL codieren?
sql-server-2005
tsql
encoding
base64
Jacob
quelle
quelle
Antworten:
Ich weiß, dass dies bereits beantwortet wurde, aber ich habe nur mehr Zeit damit verbracht, zuzugeben, dass ich einzeilige SQL-Anweisungen entwickelt habe, um dies zu erreichen. Deshalb werde ich sie hier teilen, falls jemand anderes dasselbe tun muss:
Ich musste in der ersten (Codierungs-) Abfrage eine von Unterabfragen generierte Tabelle verwenden, da ich keine Möglichkeit fand, den ursprünglichen Wert ("TestData") in seine hexadezimale Zeichenfolgendarstellung ("5465737444617461") zu konvertieren, um ihn als Argument aufzunehmen xs: hexBinary () in der XQuery-Anweisung.
Ich hoffe das hilft jemandem!
quelle
xs:base64Binary(sql:column("bin"))
(ohnexs:hexBinary
Aufruf) ebenfalls. Tolle Hilfe!SELECT CAST( CAST(N'' AS XML).value( 'xs:base64Binary("LgkoCU0JJAlNCTAJQAkyCUcJIAAJCTIJTQkfCU0JLwk+CQ8JIAA4CT4JJAkgABsJKAlNCWQJ")' , 'VARBINARY(MAX)' ) AS NVARCHAR(MAX) ) UnicodeEncoding ;
Der einfachste und kürzeste Weg, den ich für SQL Server 2012 und höher finden konnte, ist
BINARY BASE64
:Für Base64 zu string
(oder
nvarchar(max)
für Unicode-Zeichenfolgen)quelle
Hier ist eine Modifikation der Antwort von mercurial, die auch die Unterabfrage für die Dekodierung verwendet und die Verwendung von Variablen in beiden Fällen ermöglicht.
quelle
Hier ist der Code für die Funktionen, die die Arbeit erledigen
Anwendungsbeispiel:
quelle
Ich habe die Antwort von @ Slai geliebt. Ich musste nur geringfügige Änderungen an den Einzeilern vornehmen, die ich suchte. Ich dachte, ich würde teilen, was ich am Ende hatte, falls es jemand anderem hilft, wie ich auf diese Seite zu stolpern:
quelle
VARBINARY
zuVARBINARY(56)
, und dann hat es funktioniert.Nein, es gibt keine native Funktion. Diese Methode hat in der Vergangenheit für mich funktioniert: http://www.motobit.com/help/scptutl/sa306.htm
Diese Methode auch:
http://www.vbforums.com/ showthread.php? t = 554886
quelle
Dies ist nützlich zum Codieren und Decodieren.
Von Bharat J.
quelle
Ich habe ein Skript erstellt, um einen vorhandenen in base64 codierten Hash in eine Dezimalzahl zu konvertieren. Dies kann nützlich sein:
quelle
Sie können nur verwenden:
Nach dem Codieren erhalten Sie den Text 'MjE4Nqk5'.
quelle