如何让VARCHAR2列使用BYTE而不是CHAR?
它看起来像SQLAlchemy默认创建VARCHAR2
列为CHAR
。 我怎么能用BYTE
创建它呢?
from sqlalchemy import MetaData, Column, String from sqlalchemy.ext.declarative import declarative_base metadata = MetaData() Base = declarative_base(metadata=metadata) class Foo(Base): __tablename__ = 'foo' name = Column(String(10), primary_key=True) Foo.__table__.create(bind=engine)
这将创建下表:
CREATE TABLE XXMD.FOO ( NAME VARCHAR2(10 CHAR) NOT NULL )
相反,我希望它创建以下内容:
CREATE TABLE XXMD.FOO ( NAME VARCHAR2(10 BYTE) NOT NULL )
感谢Mike Bayer:
from sqlalchemy.ext.compiler import compiles class VARCHAR2Byte(String): pass @compiles(VARCHAR2Byte) def compile_varchar2_byte(type_, compiler, **kw): len = type_.length return 'VARCHAR2(%i BYTE)' % len链接地址: http://www.djcxy.com/p/63435.html
上一篇: How to get VARCHAR2 columns to use BYTE and not CHAR?
下一篇: How to find the name of an Oracle Sequence used by a column in SQLAlchemy?