Как я получаю тип данных столбца в Oracle с мн SQL с низкими полномочиями?

Не рекомендуется использовать CommandArgument для нацеливания на строку по индексу, поскольку порядок строк может быть изменен, например, путем сортировки.


public partial class _Default : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                var dataObjects = new List<DataObject>();

                for (int i = 0; i < 100; i++)
                {
                    dataObjects.Add(new DataObject() { Index = i });
                }

                gridView1.DataSource = dataObjects;
                gridView1.DataBind();
            }
        }

        protected void gridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Delete")
            {
                var dataObjectIndex = int.Parse((string) e.CommandArgument);
                e.Handled = true;
            }
        }
    }

    public class DataObject
    {
        public int Index { get; set; }
    }


    <asp:GridView ID="gridView1" runat="server" OnRowCommand="gridView1_RowCommand" AutoGenerateColumns="false">
        <Columns>
            <asp:BoundField DataField="Index" HeaderText="Index" />
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:Button ID="btnDelete" runat="server" CommandName="Delete" CommandArgument='<%# Bind("Index") %>' />
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>

55
задан Eric Leschinski 20 August 2014 в 11:53
поделиться

4 ответа

ALL_TAB_COLUMNS должен быть доступен для запросов из PL / SQL. DESC - это команда SQL * Plus.

SQL> desc all_tab_columns;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 OWNER                                     NOT NULL VARCHAR2(30)
 TABLE_NAME                                NOT NULL VARCHAR2(30)
 COLUMN_NAME                               NOT NULL VARCHAR2(30)
 DATA_TYPE                                          VARCHAR2(106)
 DATA_TYPE_MOD                                      VARCHAR2(3)
 DATA_TYPE_OWNER                                    VARCHAR2(30)
 DATA_LENGTH                               NOT NULL NUMBER
 DATA_PRECISION                                     NUMBER
 DATA_SCALE                                         NUMBER
 NULLABLE                                           VARCHAR2(1)
 COLUMN_ID                                          NUMBER
 DEFAULT_LENGTH                                     NUMBER
 DATA_DEFAULT                                       LONG
 NUM_DISTINCT                                       NUMBER
 LOW_VALUE                                          RAW(32)
 HIGH_VALUE                                         RAW(32)
 DENSITY                                            NUMBER
 NUM_NULLS                                          NUMBER
 NUM_BUCKETS                                        NUMBER
 LAST_ANALYZED                                      DATE
 SAMPLE_SIZE                                        NUMBER
 CHARACTER_SET_NAME                                 VARCHAR2(44)
 CHAR_COL_DECL_LENGTH                               NUMBER
 GLOBAL_STATS                                       VARCHAR2(3)
 USER_STATS                                         VARCHAR2(3)
 AVG_COL_LEN                                        NUMBER
 CHAR_LENGTH                                        NUMBER
 CHAR_USED                                          VARCHAR2(1)
 V80_FMT_IMAGE                                      VARCHAR2(3)
 DATA_UPGRADED                                      VARCHAR2(3)
 HISTOGRAM                                          VARCHAR2(15)
53
ответ дан 26 November 2019 в 17:43
поделиться

Для наблюдения внутреннего размера представления в байтах, можно использовать:

REGEXP_SUBSTR(DUMP(your_column_name), 'Len=(\d+)\:', 1, 1, 'c', 1 ) 
0
ответ дан 26 November 2019 в 17:43
поделиться

Вы можете использовать команду desc .

desc MY_TABLE

Это даст вам имена столбцов, допустимость null и тип данных (и длину, если применимо)

36
ответ дан 26 November 2019 в 17:43
поделиться
select t.data_type 
  from user_tab_columns t 
 where t.TABLE_NAME = 'xxx' 
   and t.COLUMN_NAME='aaa'
12
ответ дан 26 November 2019 в 17:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: