Use the mmm-mode package which allows MultipleModes. Here’s a configuration for PROC*C by BernardGolard?:
(require 'mmm-mode)
(set-face-background 'mmm-default-submode-face nil)
(mmm-add-classes
'((embedded-sql
:submode sql-mode
:front "EXEC SQL"
:back ";")))
(setq-default mmm-global-mode t)
(mmm-add-mode-ext-class 'c-mode "\.pc$" 'embedded-sql)
(mmm-add-mode-ext-class 'c-mode "\.sqc$" 'embedded-sql)
(setq-default mmm-never-modes
(append '(ediff-mode) '(text-mode) mmm-never-modes))The major mode is c-mode and submode is sql-mode (SqlMode).