10.3. ����

�������õIJ���������������IJ����������ġ�

�����������ͽ���

  1. �� pg_proc ϵͳ����ѡ��Ҫ���ǵĺ����� ���ʹ����δ�����ε����֣���ô����Ϊ�ú�������Щ�ڵ�ǰ����·���пɼ��ģ� ӵ����ȷ���ֺͲ��������ĺ��������� Section 5.8.3���� ���������һ�������εĺ���������ôֻ������������ģʽ�еĺ�����

    1. ���������·�����ҵ������������ͬ�IJ������ͣ� ��ôֻ���dz���������·����ǰ����Ǹ��������в�ͬ�������͵ĺ���������ͬ��̬�ȿ����� ����������������·���е�λ�á�

  2. ��һ���պý�����ȫһ�µ�����������͵ĺ����� ���������ôһ�����ڿ��ǵĺ������п���ֻ����һ��������֮�� ���漰�� unknown ���͵�������ڱ����費���ҵ��κ�ƥ�䡣��

  3. ���û���ҵ�׼ȷ��ƥ�䣬�򿴿����������Ƿ�������Ҫһ���򵥵�����ת���� �����������ֻ��һ���������Һ�������ijЩ�������͵ģ��ڲ���������ͬ����ô�ͻ������������� ���⣬�ú����IJ���������һ��δ֪���͵��ı������������������Ͷ����Ƽ��ݡ����������Щ������ ��ú��������ڲ����κ�ʵ�ʺ������õ������ת��������������������͡�

  4. �������ŵ�ƥ��

    1. ������Щ�������Ͳ�ƥ�䲢��Ҳ����ǿ��ת����ʹ������ת������ƥ��ĺ�ѡ�������� unknown �ı�����������±���Ϊ�ǿ���ת�����κζ��������ֻʣ��һ����ѡ���֮�� ���������һ����

    2. �������к�ѡ������������Щ�����������������׼ȷƥ��ġ� �������ֳ���������Ϊ�����������һ������ ���û��һ����׼ȷƥ�䣬����ȫ���� ���ֻʣ��һ������֮�����������һ����

    3. �������к�ѡ������������Щ�������Ҫ����ת���IJ���λ���Ͻ�����ѡ���͵ĺ����� ���û���ĸ���ѡ����������ѡ���ͣ�����ȫ���� ���ֻʣ��һ������֮�����������һ����

    4. ����κ����������unknown�����ʣ�µĺ�ѡ������Ӧ����λ�õ����ͱ� ����κκ�ѡ��������string���ͣ�������Щλ��ѡ string ���� �����������Ϊ string �Ǻ��ʵģ���Ϊ unknown �����ı�ȷʵ�� string���� �����������ʣ�µĺ�ѡ����������ͬ�����ͣ�ѡ������ͣ� �����׳�һ��������Ϊ��û�и��������������²��ܵ�����ȷ��ѡ�� ��������������ѡ�������ͱ�ĺ�ѡ������Ȼ�� ��������ѡ������ij�������IJ���λ�ý���һ����ѡ���ͣ� ��������Щ�ڸò���λ�ý��ܷ���ѡ���͵ĺ�ѡ������

    5. ���ֻʣ��һ����������֮�� ������г���һ���ĺ�ѡ��������û�к�ѡ�����������һ������

��ע�⣬"���ƥ��" ����Բ������ͶԺ��������ͷ�������һ���ġ� ������һЩ���ӡ�

Example 10-4. Բ�������������ͽ���

ֻ��һ��round��������������������һ��������numeric�� �ڶ����� integer������������IJ�ѯ�Զ��ѵ�һ������Ϊ integer �IJ���ת���� numeric��

SELECT round(4, 4);

 round
--------
 4.0000
(1 row)

ʵ��������������ת���ɣ�

SELECT round(CAST (4 AS numeric), 4);

��Ϊ��С�������ֵ������ʼʱ������ numeric ���ͣ��������IJ�ѯ������Ҫ����ת�������ҿ��ܻ���΢��ЧһЩ��

SELECT round(4.0, 4);

Example 10-5. ���ִ��������ͽ���

�кü��� substr ����������һ���������� text �� integer�������һ��δ�������͵��ִ������������� ϵͳ��ѡ�������ѡ string���ͣ�Ҳ�������� text���ĺ�ѡ������

SELECT substr('1234', 3);

 substr
--------
     34
(1 row)

������ַ�������Ϊ���� varchar�� ���������ӱ���ȡ��������һ���������������Ž���ת���� text��

SELECT substr(varchar '1234', 3);

 substr
--------
     34
(1 row)

��������ת����ʵ���ϱ�ɣ�

SELECT substr(CAST(varchar '1234' AS text), 3);

 substr
--------
     34
(1 row)

Note: ��������pg_cast���˽⵽ text �� varchar �Ƕ����Ƽ��ݵģ� ��˼��˵����һ�����Դ��ݸ�һ����������һ���ĺ���������Ҫ���κ�����ת���� ��ˣ�����������£�ʵ����û�����κ���ȷ������ת����

���ң������ integerΪ�������ú���������������ͼ����ת���� text��

SELECT substr(1234, 3);

 substr
--------
     34
(1 row)

ʵ����������ִ�е�

SELECT substr(CAST(1234 AS text), 3);

 substr
--------
     34
(1 row)

�����Զ�ת���ܹ��ɹ�����Ϊ����һ���� integer �� text ������ת�����Ե��á�