Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Oracle: Blob remote via Kommandozeile inserten? (https://www.delphipraxis.net/101176-oracle-blob-remote-via-kommandozeile-inserten.html)

Phoenix 9. Okt 2007 13:51

Datenbank: Oracle • Version: 10g • Zugriff über: Oracle Client

Oracle: Blob remote via Kommandozeile inserten?
 
Ich muss es irgendwie schaffen, einen BLOB in eine Oracle-Datenbank via Kommandozeile zu inserten.

Dieser Artikel hier funktioniert nicht, weil das Directory das hier verwendet wird auf dem Server angezogen wird. Das ganze muss jedoch remote passieren.

Also die Anforderungen:
- Zugang: remote via sqlplus
- eine Datei, die die Blob-Daten enthält (ist vorhanden)
- erlaubte Hilfsmittel: ausschliesslich .bat Files und sqlPlus -scripte

Wie kann man das so schaffen?

marabu 9. Okt 2007 14:23

Re: Oracle: Blob remote via Kommandozeile inserten?
 
Hallo Sebastian,

wie groß sind denn deine BLOB-Daten? Oracle unterstützt das binary literal format nur bis zu 4.000 Bytes (= hex digits). Du müsstest dann das INSERT Statement durch Verkettung von Literalen in einem Batch-Skript erzeugen, wobei du deine BLOB-Daten vorher nach HEX umkodieren müsstest, wenn sie binär vorliegen.

Freundliche Grüße

Phoenix 9. Okt 2007 14:26

Re: Oracle: Blob remote via Kommandozeile inserten?
 
Die Daten um die es konkret geht sind knapp unter 10 Byte (78 bit) groß.

Wie würde man die Hexcodiert in ein Statement packen? Hast Du da ein Link zu einem Sample?

marabu 9. Okt 2007 14:34

Re: Oracle: Blob remote via Kommandozeile inserten?
 
Die Syntax ist recht einfach:

SQL-Code:
 INSERT INTO tbl (blob) values('DEAF')

Phoenix 10. Okt 2007 07:49

Re: Oracle: Blob remote via Kommandozeile inserten?
 
Wie geil, das funktioniert ja einwandfrei :firejump:
Danke! :thuimb:

p80286 5. Feb 2016 15:37

AW: Oracle: Blob remote via Kommandozeile inserten?
 
Ich häng mich mal hier an, weil ich ein beinahe gleiches Problem habe.
Code:
update btable set bfield='Dies ist ein Blob Eintrag' where id=12345;
Das wäre mein naiver Ansatz gewesen.

Wenn ich das richtig verstanden habe was ich bisher gelesen habe, dann habe ich nur diese Möglichkeit
Code:
update btable set bfield=44696573206973742065696E20426C6F622045696E74726167 where id=12345;
bzw.
Code:
update btable set bfield=hextoraw(rawtoblob(44696573206973742065696E20426C6F622045696E74726167)) where id=12345;

Ist das korrekt? bzw. gibt es doch noch eine andere Möglichkeit?

jobo 5. Feb 2016 15:49

AW: Oracle: Blob remote via Kommandozeile inserten?
 
Du kannst im Falle eines Textes diesen mit oracle funktionen codieren, also Dir irgendwelchen handgestrickten Hexkram sparen.
Ich habe irgendwo Code für Export / Import Scripts von Bilddaten, die sowas nutzen. Muss ich mal nachsehen. Im Prinzip ist das ziemlich ähnlich zur Behandlung von Email Attachments.

p80286 5. Feb 2016 15:51

AW: Oracle: Blob remote via Kommandozeile inserten?
 
Bitte,bitte schau nach, ich hab die entsprechenden Funktionen nämlich bisher nicht gefunden.
Danke

K-H

jobo 5. Feb 2016 16:45

AW: Oracle: Blob remote via Kommandozeile inserten?
 
Evtl. reicht das schon
Code:
update <table> set <blobcol>=rawtohex('Dies ist ein Blob Eintrag')
where <condition>
Muss ggF. auf die Codierung geachtet werden. Was ich im Kopf hatte ist noch anders gelagert durch die Binärdaten.

p80286 5. Feb 2016 16:57

AW: Oracle: Blob remote via Kommandozeile inserten?
 
Sicher?
Aber Gut, probieren geht über studieren, ein string als raw :shock:

vielen dank!

Es geht! Es geht! :bouncing4:

vor allem scheint es keinen unterschied zu machen ob
Code:
blobfield=to_blob(rawtohex('Mein Text'))
oder
Code:
blobfield=rawtohex('Mein Text')
(aber HexCode muß sein!!)

K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:54 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz