Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Behandeln Sie anonyme Blöcke in dynamischen SQL-Anweisungen in Aurora PostgreSQL - AWS Prescriptive Guidance

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Behandeln Sie anonyme Blöcke in dynamischen SQL-Anweisungen in Aurora PostgreSQL

Erstellt von anuradha chintha (AWS)

Übersicht

Dieses Muster zeigt Ihnen, wie Sie den Fehler vermeiden können, der beim Umgang mit anonymen Blöcken in dynamischen SQL-Anweisungen auftritt. Sie erhalten eine Fehlermeldung, wenn Sie das AWS Schema Conversion Tool verwenden, um eine Oracle-Datenbank in eine Aurora PostgreSQL-Compatible Edition-Datenbank zu konvertieren. Um den Fehler zu vermeiden, müssen Sie den Wert einer OUT Bind-Variablen kennen, aber Sie können den Wert einer OUT Bind-Variablen erst kennen, nachdem Sie die SQL-Anweisung ausgeführt haben. Der Fehler ist darauf zurückzuführen, dass das AWS Schema Conversion Tool (AWS SCT) die Logik in der Dynamic SQL-Anweisung nicht versteht. AWS SCT kann die dynamische SQL-Anweisung nicht in PL/SQL-Code (d. h. Funktionen, Prozeduren und Pakete) konvertieren.

Voraussetzungen und Einschränkungen

Voraussetzungen

Architektur

Quelltechnologie-Stack

  • Lokale Oracle-Datenbank 10g und neuere Version

Zieltechnologie-Stack

  • Amazon Aurora PostgreSQL

  • Amazon RDS für PostgreSQL

  • AWS-Schemakonvertierungstool (AWS SCT)

Architektur der Migration

Das folgende Diagramm zeigt, wie Sie AWS SCT- und OUT Oracle-Bind-Variablen verwenden, um Ihren Anwendungscode nach Embedded SQL-Anweisungen zu scannen und den Code in ein kompatibles Format zu konvertieren, das eine Aurora-Datenbank verwenden kann.

Architekturdiagramm für die Verwendung von AWS SCT- und Oracle OUT-Bind-Variablen

Das Diagramm zeigt den folgenden Workflow:

  1. Generieren Sie einen AWS SCT-Bericht für die Quelldatenbank, indem Sie Aurora PostgreSQL als Zieldatenbank verwenden.

  2. Identifizieren Sie den anonymen Block im Dynamic SQL-Codeblock (für den AWS SCT den Fehler ausgelöst hat).

  3. Konvertieren Sie den Codeblock manuell und stellen Sie den Code in einer Zieldatenbank bereit.

Tools

AWS-Services

Andere Tools

  • pgAdmin ermöglicht es Ihnen, eine Verbindung zu Ihrem Datenbankserver herzustellen und mit ihm zu interagieren.

  • Oracle SQL Developer ist eine integrierte Entwicklungsumgebung, mit der Sie Datenbanken in Oracle Database entwickeln und verwalten können. Sie können entweder SQL *Plus oder Oracle SQL Developer für dieses Muster verwenden.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie eine Oracle-Instanz auf Amazon RDS oder Amazon EC2.

Informationen zum Erstellen einer Oracle-DB-Instance auf Amazon RDS finden Sie unter Eine Oracle-DB-Instance erstellen und eine Verbindung zu einer Datenbank auf einer Oracle-DB-Instance herstellen in der Amazon RDS-Dokumentation.

Informationen zum Erstellen einer Oracle-DB-Instance auf Amazon Elastic Compute Cloud (Amazon EC2) finden Sie unter Amazon EC2 for Oracle in der AWS Prescriptive Guidance Guidance-Dokumentation.

DBA

Erstellen Sie ein Datenbankschema und Objekte für die Migration.

Sie können Amazon Cloud Directory verwenden, um ein Datenbankschema zu erstellen. Weitere Informationen finden Sie in der Cloud Directory Directory-Dokumentation unter Schema erstellen.

DBA

Konfigurieren Sie Sicherheitsgruppen für eingehenden und ausgehenden Datenverkehr.

Informationen zum Erstellen und Konfigurieren von Sicherheitsgruppen finden Sie unter Steuern des Zugriffs mit Sicherheitsgruppen in der Amazon RDS-Dokumentation.

DBA

Vergewissern Sie sich, dass die Datenbank läuft.

Informationen zum Überprüfen des Status Ihrer Datenbank finden Sie unter Amazon RDS-Ereignisse anzeigen in der Amazon RDS-Dokumentation.

DBA

Konfigurieren Sie die Oracle-Quelldatenbank

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie eine Oracle-Instanz auf Amazon RDS oder Amazon EC2.

Informationen zum Erstellen einer Oracle-DB-Instance auf Amazon RDS finden Sie unter Eine Oracle-DB-Instance erstellen und eine Verbindung zu einer Datenbank auf einer Oracle-DB-Instance herstellen in der Amazon RDS-Dokumentation.

Informationen zum Erstellen einer Oracle-DB-Instance auf Amazon Elastic Compute Cloud (Amazon EC2) finden Sie unter Amazon EC2 for Oracle in der AWS Prescriptive Guidance Guidance-Dokumentation.

DBA

Erstellen Sie ein Datenbankschema und Objekte für die Migration.

Sie können Amazon Cloud Directory verwenden, um ein Datenbankschema zu erstellen. Weitere Informationen finden Sie in der Cloud Directory Directory-Dokumentation unter Schema erstellen.

DBA

Konfigurieren Sie Sicherheitsgruppen für eingehenden und ausgehenden Datenverkehr.

Informationen zum Erstellen und Konfigurieren von Sicherheitsgruppen finden Sie unter Steuern des Zugriffs mit Sicherheitsgruppen in der Amazon RDS-Dokumentation.

DBA

Vergewissern Sie sich, dass die Datenbank läuft.

Informationen zum Überprüfen des Status Ihrer Datenbank finden Sie unter Amazon RDS-Ereignisse anzeigen in der Amazon RDS-Dokumentation.

DBA
AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie eine Aurora PostgreSQL-Instance in Amazon RDS.

Informationen zum Erstellen einer Aurora PostgreSQL-Instance finden Sie unter Erstellen eines DB-Clusters und Herstellen einer Verbindung zu einer Datenbank auf einem Aurora PostgreSQL-DB-Cluster in der Amazon RDS-Dokumentation.

DBA

Konfigurieren Sie eine Sicherheitsgruppe für eingehenden und ausgehenden Datenverkehr.

Informationen zum Erstellen und Konfigurieren von Sicherheitsgruppen finden Sie in der Aurora-Dokumentation unter Gewähren des Zugriffs auf den DB-Cluster in der VPC durch Erstellen einer Sicherheitsgruppe.

DBA

Vergewissern Sie sich, dass die Aurora PostgreSQL-Datenbank läuft.

Informationen zum Überprüfen des Status Ihrer Datenbank finden Sie unter Amazon RDS-Ereignisse anzeigen in der Aurora-Dokumentation.

DBA

Konfigurieren Sie die Aurora PostgreSQL-Zieldatenbank

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie eine Aurora PostgreSQL-Instance in Amazon RDS.

Informationen zum Erstellen einer Aurora PostgreSQL-Instance finden Sie unter Erstellen eines DB-Clusters und Herstellen einer Verbindung zu einer Datenbank auf einem Aurora PostgreSQL-DB-Cluster in der Amazon RDS-Dokumentation.

DBA

Konfigurieren Sie eine Sicherheitsgruppe für eingehenden und ausgehenden Datenverkehr.

Informationen zum Erstellen und Konfigurieren von Sicherheitsgruppen finden Sie in der Aurora-Dokumentation unter Gewähren des Zugriffs auf den DB-Cluster in der VPC durch Erstellen einer Sicherheitsgruppe.

DBA

Vergewissern Sie sich, dass die Aurora PostgreSQL-Datenbank läuft.

Informationen zum Überprüfen des Status Ihrer Datenbank finden Sie unter Amazon RDS-Ereignisse anzeigen in der Aurora-Dokumentation.

DBA
AufgabeBeschreibungErforderliche Fähigkeiten

Connect AWS SCT mit der Quelldatenbank.

Informationen zur Verbindung von AWS SCT mit Ihrer Quelldatenbank finden Sie unter Connecting to PostgreSQL as a source in der AWS SCT-Dokumentation.

DBA

Connect AWS SCT mit der Zieldatenbank.

Informationen zur Verbindung von AWS SCT mit Ihrer Zieldatenbank finden Sie unter Was ist das AWS Schema Conversion Tool? im AWS Schema Conversion Tool-Benutzerhandbuch.

DBA

Konvertieren Sie das Datenbankschema in AWS SCT und speichern Sie den automatisch konvertierten Code als SQL-Datei.

Informationen zum Speichern von mit AWS SCT konvertierten Dateien finden Sie unter Speichern und Anwenden Ihres konvertierten Schemas in AWS SCT im AWS Schema Conversion Tool User Guide.

DBA

AWS SCT einrichten

AufgabeBeschreibungErforderliche Fähigkeiten

Connect AWS SCT mit der Quelldatenbank.

Informationen zur Verbindung von AWS SCT mit Ihrer Quelldatenbank finden Sie unter Connecting to PostgreSQL as a source in der AWS SCT-Dokumentation.

DBA

Connect AWS SCT mit der Zieldatenbank.

Informationen zur Verbindung von AWS SCT mit Ihrer Zieldatenbank finden Sie unter Was ist das AWS Schema Conversion Tool? im AWS Schema Conversion Tool-Benutzerhandbuch.

DBA

Konvertieren Sie das Datenbankschema in AWS SCT und speichern Sie den automatisch konvertierten Code als SQL-Datei.

Informationen zum Speichern von mit AWS SCT konvertierten Dateien finden Sie unter Speichern und Anwenden Ihres konvertierten Schemas in AWS SCT im AWS Schema Conversion Tool User Guide.

DBA
AufgabeBeschreibungErforderliche Fähigkeiten

Holen Sie sich die SQL-Datei für die manuelle Konvertierung.

Rufen Sie in der von AWS SCT konvertierten Datei die SQL-Datei ab, für die eine manuelle Konvertierung erforderlich ist.

DBA

Aktualisiere das Skript.

Aktualisieren Sie die SQL-Datei manuell.

DBA

Migrieren Sie den Code

AufgabeBeschreibungErforderliche Fähigkeiten

Holen Sie sich die SQL-Datei für die manuelle Konvertierung.

Rufen Sie in der von AWS SCT konvertierten Datei die SQL-Datei ab, für die eine manuelle Konvertierung erforderlich ist.

DBA

Aktualisiere das Skript.

Aktualisieren Sie die SQL-Datei manuell.

DBA

Zugehörige Ressourcen

Zusätzliche Informationen

Der folgende Beispielcode zeigt, wie die Oracle-Quelldatenbank konfiguriert wird:

CREATE or replace PROCEDURE calc_stats_new1 ( a NUMBER, b NUMBER, result out NUMBER) IS BEGIN result:=a+b; END; /
set serveroutput on ; DECLARE a NUMBER := 4; b NUMBER := 7; plsql_block VARCHAR2(100); output number; BEGIN plsql_block := 'BEGIN calc_stats_new1(:a, :b,:output); END;'; EXECUTE IMMEDIATE plsql_block USING a, b,out output; DBMS_OUTPUT.PUT_LINE('output:'||output); END;

Der folgende Beispielcode zeigt, wie die Aurora PostgreSQL-Zieldatenbank konfiguriert wird:

w integer, x integer) RETURNS integer AS $BODY$ DECLARE begin return w + x ; end; $BODY$ LANGUAGE plpgsql; CREATE OR REPLACE FUNCTION test_pg.init() RETURNS void AS $BODY$ BEGIN if aws_oracle_ext.is_package_initialized ('test_pg' ) then return; end if; perform aws_oracle_ext.set_package_initialized ('test_pg' ); PERFORM aws_oracle_ext.set_package_variable('test_pg', 'v_output', NULL::INTEGER); PERFORM aws_oracle_ext.set_package_variable('test_pg', 'v_status', NULL::text); END; $BODY$ LANGUAGE plpgsql; DO $$ declare v_sql text; v_output_loc int; a integer :=1; b integer :=2; BEGIN perform test_pg.init(); --raise notice 'v_sql %',v_sql; execute 'do $a$ declare v_output_l int; begin select * from test_pg.calc_stats_new1('||a||','||b||') into v_output_l; PERFORM aws_oracle_ext.set_package_variable(''test_pg'', ''v_output'', v_output_l) ; end; $a$' ; v_output_loc := aws_oracle_ext.get_package_variable('test_pg', 'v_output'); raise notice 'v_output_loc %',v_output_loc; END ; $$
DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.