csv-Import von Daten per SQL über BASE

Ich habe viel zu wenig Erfahrung mit MySQL/MariaDB aber die Dokumentation scheint recht ordentlich zu sein und es scheint viele Optionen und Schlüsselwörter ( SET ) zu geben, um Text in eine Tabelle zu quetschen. Das wäre Thema in einem MySQL-Forum und ist dort sicher schon tausendfach ausdiskutiert.
Wie ich schon am Anfang sagte, hängt wirklich alles an der verwendeten Datenbank-Engine und an den kleinsten Details der CSV-Daten. Base bietet hier gar nichts an weil der Umgeng mit csv anscheinend genauso wenig standardisiert ist wie csv selbst.

Wenn alle Stricke reißen, dann erstelle doch - analog zu meinem HSQL-Beispiel - eine separate Import-Tabelle, in die Du die Daten so semiperfekt in VARCHAR-Spalten einliest wie Du es halt hinbekommst.
Danach lässt Du mein Makro sowas machen wie:

DELETE FROM `import_csv`
LOAD DATA IN FILE ... INTO `import_csv`
INSERT INTO `eigentliche tabelle` (SELECT * FROM `my_view`)

Die Zeichenkodierung sollte aber beim Einlesen richtig gesetzt werden. In Deutschland scheint Windows 1252 (Latin 1) weit verbreitet zu sein. Calc kann Dir helfen, den richtigen Zeichensatz zu ermitteln.
WIndows 1252 wäre dann “latin1” nach https://mariadb.com/kb/en/supported-character-sets-and-collations/
Auch hier läge die Herausforderung in dem SQL-Code in my_view zwecks Umwandlung von deutschem Text mit Anführungszeichen, Komma-Dezimalzahlen und dt. Datumsformaten in valide SQL Datentypen.

Ich fang mal hinten beim Thema Prüfsequenz an: Bei csv gibt es nichts. Man arbeitet ohne Sicherung und muss selbst herausfinden (Analysieren, Dokumentation lesen, prüfen ob dokumentation stimmt) welche Details gelten. Du kannst natürlich z.B. ein Mitglied Äoü Öẞ Üäö in Deine Datenbank aufnehmen und kontrollieren, ob es nach dem Import vorkommt. In Deutschland sind damit die meisten Problemfälle abgedeckt und man bekommt hoffentlich einen Hinweis, wenn Probleme mit Ångström, El Niño etc. zu erwarten sind…
.
Mit Deinem CHARACTER SET utf8 gibst Du an, dass die csv (Deiner Meinung nach) utf8-kodiert ist. Davon kann bei der Installation nichts berücksichtigt werden, da das eben oft an dem System liegt, das die csv erzeugt. Alte DOS-Programme liefern gelegentlich immer noch IBM-437 und ich habe es auch schon erlebt, dass Eingabeaufforderung jnd Windows-Programme auf demselben Rechner mit unterschiedlichen Codepages arbeiten.
.
Konsolenbasierte Programme übernehmen normalerweise die Einstellung des Terminals von der Sie gestartet werden (zumindestens, wenn fer Programmierer das berücksichtigt hat) und man kann auch den Zeichensatz in der Eingabeaufforderung ändern, was aber natürlich keine csv-Datei ändert.
.
Was Dein konkretes Problem angeht, würde ich versuchen erstmal in eine Import-Tabelle einzulesen, in der Du z.B. die erste Stalte als Text definierst. Dann eine Konvertierungs-Abfrage bauen, die die notwendigen Konvertierungen in ein Zahlenformat vornimmt. Diese Abfrage als View/Ansicht speichern (hat @Villeroy oben auch schon erwähnt) und danach nur noch diese Ansicht als Quelle verwenden.

Ich bin mir schon bekannt, dass das csv-Format beliebig, aber dennoch nach bestimmten Regeln (RFC 4180 siehe Wikipedia) aufgebaut ist. Das wiederum bedeutet, das vieles möglich ist, sofern bestimmte Konventionen eingehalten werden, mit der Folge, dass das Importformat z.T. erst nach einigen Versuchen bestimmt und angewendet werden kann. Wo mir das Wissen jedoch fehlt, war, wie stelle ich dies beim Datenimport ein. In Manuals habe ich dann (nach langem Suchen) die Hinweise erhalten:
a. der Zeichensatz kann im ini-file vorgeben werden
im my.ini habe ich 4 Zeilen ergänzt:

[mysqld]
...
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
[client]
...
default-character-set=utf8mb4

b. ebenso beim Daten-Import
Nach Load data … folgt die Zeile

CHARACTER SET CP1250

Und damit funktionierte der csv-Import wie vorgesehen.
Nochmal zur Information: csv-Export erfolgt aus einem externen fremdgewartetem System
und der Import in einem Windows 10-System.
Die vollständige Routine sieht jetzt folgendermassen aus:

LOAD DATA LOCAL INFILE 'D:/Ordner/filename.csv'
    INTO TABLE import
/** Windows Zeichensatz **/
    CHARACTER SET CP1250
    FIELDS 
        ENCLOSED BY '"'
        TERMINATED BY ';'
    LINES
        TERMINATED BY '\r'
    IGNORE 1 LINES
;

Bis auf den “Fehler” der ersten Spalte wurden alle Daten im erwartetem Sinne eingetragen.
Da eine weitere Verarbeitung der ersten Spalte nicht vorgesehen ist, ist diese Lösung für mich akzeptabel.
Meinen herzlichen Dank allen hier im Thread mit Informationen beigetragenen Usern.

Werner