Если вы используете относительно новую версию Oracle, я бы использовал новый синтаксис escape-строки
EXECUTE IMMEDIATE q'[CREATE TABLE dependents
( Id NUMBER(6)
, FirstName VARCHAR2(20)
, LastName VARCHAR2(25)
CONSTRAINT dep_last_name_nn NOT NULL
, Birthdate Date
, Relation VARCHAR2(20)
, Gender char(1)
, RelativeId Number(6)
, CONSTRAINT pk_dependent primary key (Id)
, CONSTRAINT ck_gender CHECK(Gender in('F','M'))
)]';
Если вы не хотите использовать новый синтаксис, вам понадобятся два последовательныходиночные кавычки, а не двойные кавычки
EXECUTE IMMEDIATE 'CREATE TABLE dependents
( Id NUMBER(6)
, FirstName VARCHAR2(20)
, LastName VARCHAR2(25)
CONSTRAINT dep_last_name_nn NOT NULL
, Birthdate Date
, Relation VARCHAR2(20)
, Gender char(1)
, RelativeId Number(6)
, CONSTRAINT pk_dependent primary key (Id)
, CONSTRAINT ck_gender CHECK(Gender in(''F'',''M''))
)';
Я бы, однако, предупредил, что динамическое создание объектов, как правило, плохая идея - как правило, есть более эффективные способы для достижения такого рода вещи.