Abap und Native SQL

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
11 Beiträge • Seite 1 von 1
11 Beiträge Seite 1 von 1

Abap und Native SQL

Beitrag von cgreiner (ForumUser / 17 / 2 / 0 ) »
Hallo,

Wie ist eure Erfahrung mit ABAP und Native SQL bei fremden Server/Datenbank?
Ich habe mich neu damit befasst und doch einiges anderes feststellen müssen, gegenüber der Syntax der Datenbank-Hersteller.

Als Beispiel für connect bei MSSQL:
DATA: gc_dbs TYPE string,
database TYPE string.
MOVE 'LOHN' TO database.
MOVE 'Driver=SQL Server;server=192.168.13.46;database=lohn;uid:adm;pwd=adm;' TO gc_dbs.
CONNECT using :gc_dbs as :database

Funktionniert in ABAP nicht, hier muss über DBCO eine Verbindung angelegt werden und dann erst darauf verweisen.

Anders Beispiel, prüfen ob eine Tabelle schon angelegt ist:
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id =
OBJECT_ID(N'[dbo].[zt_bland]') AND type in (N'U'))
EXEC SQL.
CREATE TABLE [dbo].[zt_bland].......
ENDEXEC.

geht leider nicht

Anders Beispiel, prüfen ob eine Tabelle vorhanden ist, damit Sie gedroppt werden kann:

IF EXISTS (SELECT * FROM sys.objects WHERE object_id =
OBJECT_ID(N'[dbo].[zt_bland]') AND type in (N'U'))
EXEC SQL.
DROP TABLE [dbo].[zt_bland]
ENDEXEC.

geht leider nicht

Ich habe zwar alle wesentliche Funktionen abgebildet bekommen, musste sehr viel recherchieren.
Dieses Verhalten ist bei MSSQL, MYSQL und ORACLE, wahrscheinlich auch DB2 und andere.

Macht dies Sinn?
Wie habt Ihr die Prüfung ob Tabelle vorhanden ist oder nicht elegant gelöst.

Gerne stelle ich auch das ganze Programm zur Ansicht zur Verfügung!

Ich freue mich auf eine rege Diskussion und dadurch interkulturelles Lernen

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Abap und Native SQL

Beitrag von DeathAndPain (Top Expert / 1797 / 214 / 396 ) »
Warum in aller Welt willst Du in ABAP Tabellen droppen?!? Native SQL ist die absolute Notlösung; in aller Regel braucht man das überhaupt nicht. Insofern denke ich, dass Deine Energie in eine völlig falsche Richtung geht.

Wenn es nur darum geht festzustellen, ob eine Tabelle existiert: https://www.abapforum.com/forum/viewtop ... =1&t=16537

Re: Abap und Native SQL

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Was auch immer der Grund dafür sein...
Auf jeden Fall ADBC verwenden:
https://help.sap.com/doc/abapdocu_751_i ... enadbc.htm

Re: Abap und Native SQL

Beitrag von Tron (Top Expert / 1327 / 35 / 331 ) »
Moin.
etwas einfacher läßt sich die Existenz einer Tabelle so bestimmen:

Code: Alles auswählen.

data L_TABNAME type TABNAME.
Select single tabname from DD02L into L_TABNAME where Tabname = 'XXX' and TABCLASS NE 'INTTAB'.
SAP führt doppelt Buch über Tabellen.
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: Abap und Native SQL

Beitrag von cgreiner (ForumUser / 17 / 2 / 0 ) »
DeathAndPain hat geschrieben:Warum in aller Welt willst Du in ABAP Tabellen droppen?!? Native SQL ist die absolute Notlösung; in aller Regel braucht man das überhaupt nicht. Insofern denke ich, dass Deine Energie in eine völlig falsche Richtung geht.

Wenn es nur darum geht festzustellen, ob eine Tabelle existiert: https://www.abapforum.com/forum/viewtop ... =1&t=16537
Ich will doch keine SAP-Tabelle droppen!
Es geht darum die Erfahrung mit SQL und anderen Programmiersprachen auch in ABAP umzusetzen und die bisherige Codierung
und sinnvolle Befehle zur Verfügung zu haben, falls benötigt.
Deshalb wird eine andere MSSQL-Umgebung angesteuert!
Übung macht den Meister!

Re: Abap und Native SQL

Beitrag von cgreiner (ForumUser / 17 / 2 / 0 ) »
ewx hat geschrieben:Was auch immer der Grund dafür sein...
Auf jeden Fall ADBC verwenden:
https://help.sap.com/doc/abapdocu_751_i ... enadbc.htm
Danke Enno, ADBC wäre komplett neu für mich, bin aber willig und lernfähig!

Re: Abap und Native SQL

Beitrag von cgreiner (ForumUser / 17 / 2 / 0 ) »
Tron hat geschrieben:Moin.
etwas einfacher läßt sich die Existenz einer Tabelle so bestimmen:

Code: Alles auswählen.

data L_TABNAME type TABNAME.
Select single tabname from DD02L into L_TABNAME where Tabname = 'XXX' and TABCLASS NE 'INTTAB'.
SAP führt doppelt Buch über Tabellen.
Danke für die Info, derzeit spiele/experimentiere ich auf einen nicht-SAP-MSSQL-Server!
Erfahrungsaustausch ist immer gut, jeder kann dadurch lernen!

Re: Abap und Native SQL

Beitrag von black_adept (Top Expert / 3946 / 105 / 886 ) »
Aber was willst du denn da zur Verfügung haben? Die "Standard"-Sachen kann ABAP von Haus aus.
Evtl. kann man mit Native-SQL das eine oder andere Quentchen Geschwindigkeit irgendwo rausziehen, aber man verbaut sich die Möglichkeit später mal auf ein anderes DB-System zu wechseln ( z.B. HANA in ein paar Jahren ).
Das wirklich Einzige, wo ich das jemals sinnvoll! gebraucht habe war um ein Select ohne Berücksichtigung von Groß- oder Kleinschreibung hinzubekommen, weil das halt mit OPEN_SQL nicht geht.

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
DeathAndPain

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Abap und Native SQL

Beitrag von larsi (ForumUser / 47 / 2 / 11 ) »
Hallo *,

ich glaube cgreiner möchte schlicht auf eine andere Datenbank bzw. ein anderes Datenbank-Management-System zugreifen und nicht auf die Datenbank des SAP-System, in dem er sich bewegt. Die Anforderung begegnet mir auch immer wieder, wenn Daten aus einer externen Quelle angezapft werden sollen. Und in diesen Fällen kommt man halt nur mit NativeSQL weiter oder aber eben den bereits erwähnten Klassen aus dem Umfeld der ADBC.

In der heutigen Zeit würde man sicherlich vor diese externe Datenbanken einen Application Server stellen, der wiederum per Web-Service/OData-Service oder sonstigem einen Zugriff ermöglicht. Aber man kann ja auch mal schlanke, pragmatische Lösungen ins Auge fassen ;-)

Einzige Voraussetzung dafür dürfte sein, dass dem SAP-Kernel die entsprechende DBSL für das externe DBMS zur Verfügung steht, sonst wird das wohl schwierig.

Viele Grüße
Lars

Folgende Benutzer bedankten sich beim Autor larsi für den Beitrag:
cgreiner


Re: Abap und Native SQL

Beitrag von cgreiner (ForumUser / 17 / 2 / 0 ) »
larsi hat geschrieben:Hallo *,

ich glaube cgreiner möchte schlicht auf eine andere Datenbank bzw. ein anderes Datenbank-Management-System zugreifen und nicht auf die Datenbank des SAP-System, in dem er sich bewegt. Die Anforderung begegnet mir auch immer wieder, wenn Daten aus einer externen Quelle angezapft werden sollen. Und in diesen Fällen kommt man halt nur mit NativeSQL weiter oder aber eben den bereits erwähnten Klassen aus dem Umfeld der ADBC.

In der heutigen Zeit würde man sicherlich vor diese externe Datenbanken einen Application Server stellen, der wiederum per Web-Service/OData-Service oder sonstigem einen Zugriff ermöglicht. Aber man kann ja auch mal schlanke, pragmatische Lösungen ins Auge fassen ;-)

Einzige Voraussetzung dafür dürfte sein, dass dem SAP-Kernel die entsprechende DBSL für das externe DBMS zur Verfügung steht, sonst wird das wohl schwierig.

Viele Grüße
Lars
Sehr gute Analyse, Larsi, vielen Dank! Die IT hat viele Anforderungen, viele Gesichtspunkte. Mein Vorhaben war in ABAP abzubilden, was eine Datenbank von sich gibt und ermöglicht.
Eine interessante Sichtweise und Erfahrung wert...

Re: Abap und Native SQL

Beitrag von DeathAndPain (Top Expert / 1797 / 214 / 396 ) »
Ja, aber das ist doch reines Theorycrafting ohne Praxisbezug. ABAP ist die Programmiersprache für SAP-Anwendungen im SAP-Universum. Für externe Anwendungen ist es die falsche Wahl, da machste besser Java oder Python oder was auch immer. Nun kannste Dir aus akademischen Gründen erschließen, wie man es auch in ABAP hinbekommt, nur kannste mit dem derart erlangten Wissen hinterher nichts anfangen, weil sinnvolle produktive Anwendungen in ABAP eben nicht mit fremden Datenbanken herumspielen, so dass es Dir nichts nützt, Dir erarbeitet zu haben,wie es theoretisch gehen würde.
black_adept hat geschrieben:Das wirklich Einzige, wo ich das jemals sinnvoll! gebraucht habe war um ein Select ohne Berücksichtigung von Groß- oder Kleinschreibung hinzubekommen, weil das halt mit OPEN_SQL nicht geht.
In früheren Zeiten habe ich auch gerne mal einen Datenbank-Hint an meine SELECTs rangehängt, um dem Optimierer einen Tipp zu geben, mit welcher der gejointen Tabellen er anfangen soll. Das verbaut auch nichts, da der Hint bei einem Datenbankwechsel einfach nur unwirksam werden würde, ohne aber zu stören. Mache ich aber auch schon seit Jahren nicht mehr wegen unnötig.

Seite 1 von 1

Vergleichbare Themen

4
Antw.
3833
Views
Native SQL
von bliP! » 06.03.2006 15:49 • Verfasst in ABAP® für Anfänger
12
Antw.
3877
Views
Native SQL
von Bugfix13 » 12.09.2014 13:41 • Verfasst in ABAP® für Anfänger
4
Antw.
3373
Views
Native SQL - Insert
von MarkusG » 04.04.2008 07:13 • Verfasst in ABAP® Core
0
Antw.
951
Views
und mal wieder Native SQL
von Steffi221185 » 14.08.2006 09:07 • Verfasst in ABAP Objects®
4
Antw.
2374
Views
Native SQL -> DDIC
von Jurko » 29.07.2005 16:53 • Verfasst in ABAP® Core

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.