So rufen Sie den vom System generierten Namen der Prüfbedingung der Tabellenspalte in oracle ab

Ich habe mein @ erstelTEST_TABLE Tabelle unter Verwendung der folgenden Abfrage in Oracle

  CREATE TABLE "PK"."TEST_TABLE" 
   (    "MYNAME" VARCHAR2(50),  
      "MYVAL1" NUMBER(12,0),
      "MYVAL2" NUMBER(12,0),
      "MYVAL3" NUMBER(12,0) NOT NULL,
     CHECK ("MYVAL1" IS NOT NULL) DEFERRABLE ENABLE NOVALIDATE
   ) SEGMENT CREATION IMMEDIATE 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "SYSTEM" ;

Nachdem möchte ich die auf Spalte MYVAL1 angewendeten Prüfungseinschränkungen löschen.

Dafür muss ich zuerst den Namen der Prüfbedingung in der Spalte MYVAL1 abrufen. Mit dem Befehl "alter" kann ich diese Einschränkung aufheben.

Wie kann ich den genauen Namen der vom System generierten Prüfbedingung in der Spalte @ abrufeMYVAL1.

Ich habe versucht, die Daten mit der folgenden Abfrage abzurufen, aber da die Suchbedingung eine lange Datentypspalte ist, wurde die folgende Fehlermeldung ausgegeben:

select * from user_constraints where TABLE_NAME = 'TEST_TABLE'; WO TABLE_NAME = 'TEST_TABLE' UND TO_LOB (search_condition) WIE '% "MYVAL1" IST NICHT NULL%'

FEHLER: ORA-00932: inkonsistente Datentypen: erwartet - hat LANGE 00932. 00000 - "inkonsistente Datentypen: erwartet% s hat% s" * Ursache:
* Aktion: Fehler in Zeile: 23 Spalte: 6 Irgendwelche Hinweise?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage